continue用法(回答多,还没解决,进来看看)
本帖最后由 猪猪虾 于 2020-6-20 11:04 编辑请问语句 A 在什么情况下会被执行?
答:只有当输入为数字时,才会执行语句A
……
while ((ch = getchar()) != '\n')
{
if (ch < '0' || ch > '9')
continue;
// 语句A
}
……
为啥输入是数字的时候,会执行语句A,在输入为数字的时候,应该是执行continue语句,那之后的A语句应该是跳过了才对吧
所以如果想要执行A语句,输入的东西就不能是数字?我是这么认为的 本帖最后由 xiaosi4081 于 2020-6-20 11:18 编辑
getchar是读取字符
字符是ascll码的
所以你输入1~9这几个数字
就不会执行语句A
你代码有问题:
#include <stdio.h>
int main()
{
int ch;
ch = getchar();
if (ch >0 && ch <9)
{
printf("yes \n");
}
printf("%d",ch);
return 0;
} xiaosi4081 发表于 2020-6-20 10:34
getchar是读取字符
这个我知道,判断的时候也是字符 猪猪虾 发表于 2020-6-20 10:36
这个我知道,判断的时候也是字符
我编辑了
你去看看 xiaosi4081 发表于 2020-6-20 10:37
我编辑了
你去看看
不对,你看我写的这个短程序,输入数字的时候,是能输出yes的#include <stdio.h>
int main()
{
int ch;
ch = getchar();
if (ch >'0'&& ch <'9')
{
printf("yes \n");
}
printf("%d",ch);
return 0;
猪猪虾 发表于 2020-6-20 10:42
不对,你看我写的这个短程序,输入数字的时候,是能输出yes的
你输入的数字是啥?? xiaosi4081 发表于 2020-6-20 10:59
你输入的数字是啥??
3 猪猪虾 发表于 2020-6-20 11:00
3
那你输入15试试看 xiaosi4081 发表于 2020-6-20 11:01
那你输入15试试看
还是yes,没毛病, 猪猪虾 发表于 2020-6-20 11:03
还是yes,没毛病,
输入字母就不是了 liuzhengyuan 发表于 2020-6-20 11:15
输入字母就不是了
所以我的理解是对的是么,我觉得论坛上的答案有问题 猪猪虾 发表于 2020-6-20 11:03
还是yes,没毛病,
没看见?被审核了? 小于0或者大于9的条件才会继续,而小于0或大于9的字符根本不是数字。数字字符的值是0到9。最小为0,依次增加,最大为9。所以小于0或大于9都不是数字字符。所以此命令为:
当输入不是数字字符时会继续。
当输入的是数字时,不符合条件,不会继续,因为会执行下面的A语句 liuzhengyuan 发表于 2020-6-20 13:35
没看见?被审核了?
?这是发生诡异事件前发的帖子 能不能试试吧if的判断条件改改,比如改为判断是否int类型这样的,我怀疑这个判断是不是有点问题
页:
[1]