switch语句
#include <stdio.h>#include <stdbool.h>
int main()
{
int op1, op2;
char ch;
float result;
bool invalid = false;
printf("请输入式子:");
scanf("%d %c %d", &op1, &ch, &op2);
switch (ch)
{
case '-': op2 = -op2; // no break
case '+': result = (float)op1 + op2; break;
case '*': result = (float)op1 * op2; break;
case '/':
if (op2 != 0)
{
result = (float)op1 / op2;
break;
}
else
{
invalid = true;
break;
}
}
if (invalid)
{
printf("除数不能为零!\n");
}
else
{
printf("结果是:%.2f\n", result);
}
return 0;
}
switch (ch)
{
case '-': op2 = -op2; // no break
case '+': result = (float)op1 + op2; break;
case '*': result = (float)op1 * op2; break;
case '/':
if (op2 != 0)
{
result = (float)op1 / op2;
break;
}
else
{
invalid = true;
break;
}
}
可以说一下这一段什么意思吗
谢谢
switch前三个不多说,就是加减乘
最后一个,因为除数是不能等于0的,
所以要加一个判断,如果除数不为0
就继续,否则就不予运算 switch (ch)
{
case '-': op2 = -op2; // no break //如果ch是‘-’。将减数变成负的减数,然后执行下一个case,也就是说加法运算。意思就是a-b=a+(-b);
case '+': result = (float)op1 + op2; break; // 如果成是’-‘或者加,执行完这一句跳出switch
case '*': result = (float)op1 * op2; break; // ch是’*‘,执行这一句,跳出switch
case '/': // 如果’/',检查除数是否为0,
if (op2 != 0)//除数不为零,进行除法运算。并跳出switch
{
result = (float)op1 / op2;
break;
}
else // 如果除数为零,将无效信号invalid设置为true,不进行除法运算跳出switch
{
invalid = true;
break;
}
}
页:
[1]