鱼C论坛

 找回密码
 立即注册
查看: 1438|回复: 7

语句循环有问题,循环不了

[复制链接]
发表于 2017-2-17 12:34:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zxsa 于 2018-7-18 21:43 编辑
  1. #include <stdio.h>
  2. #include <math.h>

  3. void main()
  4. {
  5.         double a,b;
  6.         char c,d;
  7.         d = 'a';
  8.         printf("这是一个四则运算小程序\n");
  9.         printf("按照输入数字的先后顺序来运行四则运算。\n");
  10.         while (d!='\n')
  11.         {
  12.                 printf("输入“数字+(-、*、/)数字”(中间不用加空格)\n");
  13.                 scanf("%lf%c%lf",&a,&c,&b);
  14.                 switch( c )
  15.                 {
  16.                         case '+':
  17.                                 printf("%lf\n",a+b);
  18.                                 break;
  19.                         case '-':
  20.                                 printf("%lf\n",a-b);
  21.                                 break;
  22.                         case '*':
  23.                                 printf("%lf\n",a*b);
  24.                                 break;
  25.                         case '/':
  26.                                 printf("%lf\n",a/b);
  27.                                 break;
  28.                 }
  29.                 printf("输入回车以结束!\n");
  30.                 scanf("%c",&d);
  31.         }
  32. }
复制代码





请先不要管逻辑,我的想法就是类似做一个普通计算器,可以算数完毕就结束输入或继续算数下一个运算。
然,我循环不了语句,在VC++6.0编辑。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-2-17 13:44:34 | 显示全部楼层
本帖最后由 0mrli0 于 2017-2-17 13:47 编辑
  1. break是跳出循环体
  2. continue是跳出当前循环
  3. 把程序里面的break换成continue就好了
  4. 可以再看看这两个的区别
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-17 13:46:47 | 显示全部楼层
额, 我上面的continue打错了 continue!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-17 14:31:25 | 显示全部楼层
0mrli0 发表于 2017-2-17 13:46
额,  我上面的continue打错了 continue!!!!
  1. #include <stdio.h>
  2. #include <math.h>

  3. void main()
  4. {
  5.         double a,b;
  6.         char c,d;
  7.         d = 'a';
  8.         printf("这是一个四则运算小程序\n");
  9.         printf("按照输入数字的先后顺序来运行四则运算。\n");
  10.         while (d!='\n')
  11.         {
  12.                 printf("输入“数字+(-、*、/)数字”(中间不用加空格)\n");
  13.                 scanf("%lf%c%lf",&a,&c,&b);
  14.                 switch( c )
  15.                 {
  16.                         case '+':
  17.                                 printf("%lf\n",a+b);
  18.                                 continue;
  19.                         case '-':
  20.                                 printf("%lf\n",a-b);
  21.                                 continue;
  22.                         case '*':
  23.                                 printf("%lf\n",a*b);
  24.                                 continue;
  25.                         case '/':
  26.                                 printf("%lf\n",a/b);
  27.                                 continue;
  28.                 }
  29.                 printf("输入回车以结束!\n");
  30.                 scanf("%c",&d);
  31.         }
  32. }
复制代码



换成这个continue之后确实是循环下去了,可是,它是一直循环了啊,我在它算数完毕之后一直按回城也结束不了啊
E15O(FMP_C}_LO]EFR}LWEY.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-17 15:01:49 | 显示全部楼层
那就是逻辑的问题了啊,看我改的
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main()
  4. {
  5.     double a,b;
  6.     char c,d;
  7.     while(1)
  8.     {
  9.         printf("是否运行四则运算小程序(y/n)\n");
  10.         d = getchar();
  11.         if(d==89 || d==121) //y或Y
  12.         {
  13.             printf("输入“数字+(-、*、/)数字”(中间不用加空格)\n");
  14.             scanf("%lf%c%lf",&a,&c,&b);
  15.             switch( c )
  16.             {
  17.             case '+': printf("%lf\n",a+b); continue;
  18.             case '-': printf("%lf\n",a-b); continue;
  19.             case '*': printf("%lf\n",a*b); continue;
  20.             case '/': printf("%lf\n",a/b); continue;
  21.             default : printf("error"); continue;
  22.             }
  23.         }
  24.         else if(d==78 || d==110)  //N或n
  25.         {
  26.             break;
  27.         }
  28.         else
  29.         {
  30.             printf("error input\n");
  31.         }
  32.     }
  33.     return 0;
  34. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-17 15:20:03 | 显示全部楼层
0mrli0 发表于 2017-2-17 15:01
那就是逻辑的问题了啊,看我改的

这样是否有点显得不太简洁得体?
$M1C}MW9J5(~Z{M~3LVXEQW.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-17 15:48:33 | 显示全部楼层
zxsa 发表于 2017-2-17 15:20
这样是否有点显得不太简洁得体?

这就看你自己了啊,功能实现了啊。
另外你打了太多错的啊,  或者多打两个换行让行与行之间的距离大点,稀疏了就好了。还有就是中文换成英文就会显得清楚些。这些都是随心所欲的东西啊,觉得不好就改,觉得还行就不改,看你自己啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-17 16:06:33 | 显示全部楼层
0mrli0 发表于 2017-2-17 15:48
这就看你自己了啊,功能实现了啊。
另外你打了太多错的啊,  或者多打两个换行让行与行之间的距离大点, ...

好的,谢谢,我就自己再研究一下吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-1 13:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表