c语言switch语句中的问题

来源:百度知道 编辑:UC知道 时间:2024/05/28 23:48:20
#include<stdio.h>
void main()
{
float a,b,c;
char op;
scanf("%f%c%f",&a,&op,&b);
switch (op)
{
case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=a*b;break;
case '/':c=a/b;break;
default:printf("error");
return;
}
printf("result=%.2f\n",c);
}

上面程序中,return的作用是什么?能否用if语句代替?
怎样编写才能用if语句代替呢

return 的作用是用来返回您输入数据的错误——也就是直接退出程序。比如当您输入的运算没错时,但输入的a或b是非数值型的(:a+5)
就会退出程序。
如果要改为if的话可以添加些循环语句以更好的处理这个问题。
下面是我改过的代码,或许不满意,请见谅
#include<stdio.h>
void main()
{
float a,b,c;
char op;
int k;
while(1)
{
scanf("%f%c%f",&a,&op,&b);getchar();
k=1;
switch (op)
{case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=a*b;break;
case '/':c=a/b;break;
default:printf("error\nYou may press a wrong key\n"); k=0; getchar();getchar();
}
if(k==1)
{
printf("result=%.2f\n",c);
break;
}
}
}

不执行printf("result=%.2f\n",c);
return:返回函数

switch (op)
{
case '+':c=a+b;break;
case '-':c=a-b;break;
case '*':c=a*b;break;
case '/'