鱼C论坛

 找回密码
 立即注册
查看: 1255|回复: 3

[已解决]关于一个

[复制链接]
发表于 2022-4-4 16:48:17 | 显示全部楼层 |阅读模式

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

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

x
……
while ((ch = getchar()) != '\n')
{
        if (ch < '0' || ch > '9')
                continue;
        // 语句A
}
……           请问大佬们,为什么说只能输入数字才能执行A语句,这里面//不是代表直接跳过A语句吗,我随便打一个类似于/这种字符就不能继续执行下面语句吗?
最佳答案
2022-4-5 10:12:52
可能是理解错了,加上我的注释再看一下:
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main()
  4. {
  5.     char ch;
  6.     while ((ch = getchar()) != '\n')   //在输入内容为回车不成立的条件下重复执行
  7.     {
  8.     if (ch < '0' || ch > '9')          //如果字符小于0或大于9(相当于“如果字符不是0~9之间的数”)
  9.         continue;                      //下一轮循环(此时字符不是数字)
  10.     printf("我被执行了~");
  11.     }
  12.     return 0;
  13. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-4 17:55:21 | 显示全部楼层
不是数字字符的都continue了
c里面//是注释符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-5 10:12:52 | 显示全部楼层    本楼为最佳答案   
可能是理解错了,加上我的注释再看一下:
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main()
  4. {
  5.     char ch;
  6.     while ((ch = getchar()) != '\n')   //在输入内容为回车不成立的条件下重复执行
  7.     {
  8.     if (ch < '0' || ch > '9')          //如果字符小于0或大于9(相当于“如果字符不是0~9之间的数”)
  9.         continue;                      //下一轮循环(此时字符不是数字)
  10.     printf("我被执行了~");
  11.     }
  12.     return 0;
  13. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-5 21:32:16 | 显示全部楼层
本帖最后由 一阵三十六 于 2022-4-5 21:47 编辑

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

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

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

然后赋值给了 ch


看循环条件,只有非数字字符才满足条件,这个时候就执行了continue语句。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-5 22:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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