吖呵来咯 发表于 2022-4-4 16:48:17

关于一个

……
while ((ch = getchar()) != '\n')
{
      if (ch < '0' || ch > '9')
                continue;
      // 语句A
}
……         请问大佬们,为什么说只能输入数字才能执行A语句,这里面//不是代表直接跳过A语句吗,我随便打一个类似于/这种字符就不能继续执行下面语句吗?

jhq999 发表于 2022-4-4 17:55:21

不是数字字符的都continue了
c里面//是注释符

andy大宝 发表于 2022-4-5 10:12:52

可能是理解错了,加上我的注释再看一下:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char ch;
    while ((ch = getchar()) != '\n')   //在输入内容为回车不成立的条件下重复执行
    {
    if (ch < '0' || ch > '9')          //如果字符小于0或大于9(相当于“如果字符不是0~9之间的数”)
      continue;                      //下一轮循环(此时字符不是数字)
    printf("我被执行了~");
    }
    return 0;
}

一阵三十六 发表于 2022-4-5 21:32:16

本帖最后由 一阵三十六 于 2022-4-5 21:47 编辑

// 语句A 的意思是在这一行开始写语句A ,这是一行注释

你输入任何信息都按照来字符处理
举个例子:
输入: 1234
实际上你输入了一个字符串“1234”

getchar()依次获取 ‘1’ ‘2’ ‘3’ ‘4’

然后赋值给了 ch


看循环条件,只有非数字字符才满足条件,这个时候就执行了continue语句。
页: [1]
查看完整版本: 关于一个