语句循环有问题,循环不了
本帖最后由 zxsa 于 2018-7-18 21:43 编辑#include <stdio.h>
#include <math.h>
void main()
{
double a,b;
char c,d;
d = 'a';
printf("这是一个四则运算小程序\n");
printf("按照输入数字的先后顺序来运行四则运算。\n");
while (d!='\n')
{
printf("输入“数字+(-、*、/)数字”(中间不用加空格)\n");
scanf("%lf%c%lf",&a,&c,&b);
switch( c )
{
case '+':
printf("%lf\n",a+b);
break;
case '-':
printf("%lf\n",a-b);
break;
case '*':
printf("%lf\n",a*b);
break;
case '/':
printf("%lf\n",a/b);
break;
}
printf("输入回车以结束!\n");
scanf("%c",&d);
}
}
请先不要管逻辑,我的想法就是类似做一个普通计算器,可以算数完毕就结束输入或继续算数下一个运算。
然,我循环不了语句,在VC++6.0编辑。 本帖最后由 0mrli0 于 2017-2-17 13:47 编辑
break是跳出循环体
continue是跳出当前循环
把程序里面的break换成continue就好了
可以再看看这两个的区别 额, {:10_245:} 我上面的continue打错了 continue!!!! 0mrli0 发表于 2017-2-17 13:46
额,我上面的continue打错了 continue!!!!
#include <stdio.h>
#include <math.h>
void main()
{
double a,b;
char c,d;
d = 'a';
printf("这是一个四则运算小程序\n");
printf("按照输入数字的先后顺序来运行四则运算。\n");
while (d!='\n')
{
printf("输入“数字+(-、*、/)数字”(中间不用加空格)\n");
scanf("%lf%c%lf",&a,&c,&b);
switch( c )
{
case '+':
printf("%lf\n",a+b);
continue;
case '-':
printf("%lf\n",a-b);
continue;
case '*':
printf("%lf\n",a*b);
continue;
case '/':
printf("%lf\n",a/b);
continue;
}
printf("输入回车以结束!\n");
scanf("%c",&d);
}
}
换成这个continue之后确实是循环下去了,可是,它是一直循环了啊,我在它算数完毕之后一直按回城也结束不了啊 那就是逻辑的问题了啊,看我改的#include <stdio.h>
#include <math.h>
int main()
{
double a,b;
char c,d;
while(1)
{
printf("是否运行四则运算小程序(y/n)\n");
d = getchar();
if(d==89 || d==121) //y或Y
{
printf("输入“数字+(-、*、/)数字”(中间不用加空格)\n");
scanf("%lf%c%lf",&a,&c,&b);
switch( c )
{
case '+': printf("%lf\n",a+b); continue;
case '-': printf("%lf\n",a-b); continue;
case '*': printf("%lf\n",a*b); continue;
case '/': printf("%lf\n",a/b); continue;
default : printf("error"); continue;
}
}
else if(d==78 || d==110)//N或n
{
break;
}
else
{
printf("error input\n");
}
}
return 0;
} 0mrli0 发表于 2017-2-17 15:01
那就是逻辑的问题了啊,看我改的
这样是否有点显得不太简洁得体? zxsa 发表于 2017-2-17 15:20
这样是否有点显得不太简洁得体?
这就看你自己了啊,功能实现了啊。
另外你打了太多错的啊,或者多打两个换行让行与行之间的距离大点,稀疏了就好了。还有就是中文换成英文就会显得清楚些。这些都是随心所欲的东西啊,觉得不好就改,觉得还行就不改,看你自己啊 0mrli0 发表于 2017-2-17 15:48
这就看你自己了啊,功能实现了啊。
另外你打了太多错的啊,或者多打两个换行让行与行之间的距离大点, ...
好的,谢谢,我就自己再研究一下吧。
页:
[1]