猪猪虾 发表于 2020-6-20 10:28:43

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 10:34:45

本帖最后由 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;
}

猪猪虾 发表于 2020-6-20 10:36:42

xiaosi4081 发表于 2020-6-20 10:34
getchar是读取字符

这个我知道,判断的时候也是字符

xiaosi4081 发表于 2020-6-20 10:37:27

猪猪虾 发表于 2020-6-20 10:36
这个我知道,判断的时候也是字符

我编辑了
你去看看

猪猪虾 发表于 2020-6-20 10:42:52

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;

xiaosi4081 发表于 2020-6-20 10:59:19

猪猪虾 发表于 2020-6-20 10:42
不对,你看我写的这个短程序,输入数字的时候,是能输出yes的

你输入的数字是啥??

猪猪虾 发表于 2020-6-20 11:00:07

xiaosi4081 发表于 2020-6-20 10:59
你输入的数字是啥??

3

xiaosi4081 发表于 2020-6-20 11:01:28

猪猪虾 发表于 2020-6-20 11:00
3

那你输入15试试看

猪猪虾 发表于 2020-6-20 11:03:48

xiaosi4081 发表于 2020-6-20 11:01
那你输入15试试看

还是yes,没毛病,

liuzhengyuan 发表于 2020-6-20 11:15:56

猪猪虾 发表于 2020-6-20 11:03
还是yes,没毛病,

输入字母就不是了

猪猪虾 发表于 2020-6-20 11:23:53

liuzhengyuan 发表于 2020-6-20 11:15
输入字母就不是了

所以我的理解是对的是么,我觉得论坛上的答案有问题

liuzhengyuan 发表于 2020-6-20 13:35:08

猪猪虾 发表于 2020-6-20 11:03
还是yes,没毛病,

没看见?被审核了?

405794672 发表于 2020-6-20 14:44:14

小于0或者大于9的条件才会继续,而小于0或大于9的字符根本不是数字。数字字符的值是0到9。最小为0,依次增加,最大为9。所以小于0或大于9都不是数字字符。所以此命令为:
当输入不是数字字符时会继续。
当输入的是数字时,不符合条件,不会继续,因为会执行下面的A语句

猪猪虾 发表于 2020-6-20 15:24:13

liuzhengyuan 发表于 2020-6-20 13:35
没看见?被审核了?

?这是发生诡异事件前发的帖子

Python初学者8号 发表于 2020-6-21 09:30:55

能不能试试吧if的判断条件改改,比如改为判断是否int类型这样的,我怀疑这个判断是不是有点问题
页: [1]
查看完整版本: continue用法(回答多,还没解决,进来看看)