午后狂睡 发表于 2021-5-2 17:57:21

C 简易计算器,减法如何实现

int main()
{
    float a1, a2;
    char ch;
    float result;
    bool invalid = false;

    printf("请输入式子:");
    scanf("%f %c %f", &a1, &ch, &a2);

    switch (ch)
    {
    case '-':
      a2 = -a2; //no break
    case '+':
      result = a1 + a2;
      break;
    case '*':
      result = a1 * a2;
      break;
    case '/':
      if (a2 != 0)
      {
            result = a1 / a2;
            break;
      }
      else
      {
            invalid = true;
            break;
      }
    }

红色线的减法操作是如何实现的,求大佬解答一下。

小伤口 发表于 2021-5-4 09:18:54

switch语句的case之后如果不加break就会继续向下执行因为a2=-a2下一个语句为a1+a2所以就为a1+(-a2)就是a1-a2因为这句有beak所以之后就停止,也就是实现了减法
页: [1]
查看完整版本: C 简易计算器,减法如何实现