鱼C论坛

 找回密码
 立即注册
查看: 708|回复: 14

[已解决]continue用法(回答多,还没解决,进来看看)

[复制链接]
发表于 2020-6-20 10:28:43 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 猪猪虾 于 2020-6-20 11:04 编辑

请问语句 A 在什么情况下会被执行?
答:只有当输入为数字时,才会执行语句A

  1. ……
  2. while ((ch = getchar()) != '\n')
  3. {
  4.         if (ch < '0' || ch > '9')
  5.                 continue;
  6.         // 语句A
  7. }
  8. ……
复制代码


为啥输入是数字的时候,会执行语句A,在输入为数字的时候,应该是执行continue语句,那之后的A语句应该是跳过了才对吧
所以如果想要执行A语句,输入的东西就不能是数字?我是这么认为的
最佳答案
2020-6-20 14:44:14
小于0或者大于9的条件才会继续,而小于0或大于9的字符根本不是数字。数字字符的值是0到9。最小为0,依次增加,最大为9。所以小于0或大于9都不是数字字符。所以此命令为:
当输入不是数字字符时会继续。
当输入的是数字时,不符合条件,不会继续,因为会执行下面的A语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-20 10:34:45 | 显示全部楼层
本帖最后由 xiaosi4081 于 2020-6-20 11:18 编辑

getchar是读取字符
字符是ascll码的
所以你输入1~9这几个数字
就不会执行语句A
你代码有问题:
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int ch;
  5.     ch = getchar();
  6.     if (ch >0 && ch <9)
  7.     {
  8.             printf("yes \n");
  9.         }
  10.     printf("%d",ch);
  11.     return 0;
  12. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-20 10:36:42 | 显示全部楼层

这个我知道,判断的时候也是字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-20 10:37:27 | 显示全部楼层
猪猪虾 发表于 2020-6-20 10:36
这个我知道,判断的时候也是字符

我编辑了
你去看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-20 10:42:52 | 显示全部楼层
xiaosi4081 发表于 2020-6-20 10:37
我编辑了
你去看看

不对,你看我写的这个短程序,输入数字的时候,是能输出yes的
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int ch;
  5.     ch = getchar();
  6.     if (ch >'0'  && ch <'9')
  7.     {
  8.             printf("yes \n");
  9.         }
  10.     printf("%d",ch);
  11.     return 0;
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-20 10:59:19 | 显示全部楼层
猪猪虾 发表于 2020-6-20 10:42
不对,你看我写的这个短程序,输入数字的时候,是能输出yes的

你输入的数字是啥??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-20 11:00:07 | 显示全部楼层
xiaosi4081 发表于 2020-6-20 10:59
你输入的数字是啥??

3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-20 11:01:28 | 显示全部楼层

那你输入15试试看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-20 11:03:48 | 显示全部楼层
xiaosi4081 发表于 2020-6-20 11:01
那你输入15试试看

还是yes,没毛病,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-20 11:15:56 From FishC Mobile | 显示全部楼层
猪猪虾 发表于 2020-6-20 11:03
还是yes,没毛病,

输入字母就不是了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-20 11:23:53 | 显示全部楼层

所以我的理解是对的是么,我觉得论坛上的答案有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-20 13:35:08 From FishC Mobile | 显示全部楼层
猪猪虾 发表于 2020-6-20 11:03
还是yes,没毛病,

没看见?被审核了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-20 14:44:14 | 显示全部楼层    本楼为最佳答案   
小于0或者大于9的条件才会继续,而小于0或大于9的字符根本不是数字。数字字符的值是0到9。最小为0,依次增加,最大为9。所以小于0或大于9都不是数字字符。所以此命令为:
当输入不是数字字符时会继续。
当输入的是数字时,不符合条件,不会继续,因为会执行下面的A语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-20 15:24:13 | 显示全部楼层
liuzhengyuan 发表于 2020-6-20 13:35
没看见?被审核了?

?这是发生诡异事件前发的帖子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-21 09:30:55 | 显示全部楼层
能不能试试吧if的判断条件改改,比如改为判断是否int类型这样的,我怀疑这个判断是不是有点问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 19:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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