老牛来学习 发表于 2020-2-14 20:47:57

S1E15,C语言问题

……
while ((ch = getchar()) != '\n')
{
      if (ch < '0' || ch > '9')
                continue;
      // 语句A
}
……


请问语句 A 在什么情况下会被执行?为什么???

4goodworld 发表于 2020-2-14 21:17:04

void test() {
       
        int a = 1;
        if (a)
                printf("判断里面!");
        printf("所谓语句A");

       
       
}
你可以把a变成0,这个所谓语句A始终执行
你提供的代码,可以详写成:
if (ch < '0' || ch > '9'){
                continue;
}
      // 语句A

SHRS23 发表于 2020-2-14 21:21:49

如果输入的字符在ASCII码表中在 ‘0’ 之前 或者在 ‘9’ 之后,会执行语句A

major_lyu 发表于 2020-2-14 22:28:35

输入的字符大于等于‘0’的ASCII码且小于等于‘9’的ASCII码, ch属于集合时,语句A执行

major_lyu 发表于 2020-2-14 22:30:20

SHRS23 发表于 2020-2-14 21:21
如果输入的字符在ASCII码表中在 ‘0’ 之前 或者在 ‘9’ 之后,会执行语句A

在‘0’之前或者在‘9‘之后,会执行continue;即直接跳到while循环开始处,进行下一轮循环,读取下一个字符

老牛来学习 发表于 2020-2-14 22:41:17

4goodworld 发表于 2020-2-14 21:17
你可以把a变成0,这个所谓语句A始终执行
你提供的代码,可以详写成:

小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。


什么叫输入数字时才会执行语句A,不应该输入任何大于‘0’,小于‘9’的字符都应该执行语句A吗?

老牛来学习 发表于 2020-2-14 22:42:08

SHRS23 发表于 2020-2-14 21:21
如果输入的字符在ASCII码表中在 ‘0’ 之前 或者在 ‘9’ 之后,会执行语句A

小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。


什么叫输入数字时才会执行语句A,不应该输入任何大于‘0’,小于‘9’的字符都应该执行语句A吗?

老牛来学习 发表于 2020-2-14 22:42:54

major_lyu 发表于 2020-2-14 22:28
输入的字符大于等于‘0’的ASCII码且小于等于‘9’的ASCII码, ch属于集合时,语句A执行

小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。


什么叫输入数字时才会执行语句A,不应该输入任何大于‘0’,小于‘9’的字符都应该执行语句A吗?

老牛来学习 发表于 2020-2-14 22:43:31

major_lyu 发表于 2020-2-14 22:28
输入的字符大于等于‘0’的ASCII码且小于等于‘9’的ASCII码, ch属于集合时,语句A执行

小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。


什么叫输入数字时才会执行语句A,不应该输入任何大于‘0’,小于‘9’的字符都应该执行语句A吗?

老牛来学习 发表于 2020-2-14 22:44:34

major_lyu 发表于 2020-2-14 22:30
在‘0’之前或者在‘9‘之后,会执行continue;即直接跳到while循环开始处,进行下一轮循环,读取下一个 ...

小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。


什么叫输入数字时才会执行语句A,不应该输入任何大于‘0’,小于‘9’的字符都应该执行语句A吗?

SHRS23 发表于 2020-2-15 00:33:47

major_lyu 发表于 2020-2-14 22:30
在‘0’之前或者在‘9‘之后,会执行continue;即直接跳到while循环开始处,进行下一轮循环,读取下一个 ...

对的,我没看仔细{:10_277:}

SHRS23 发表于 2020-2-15 00:34:36

老牛来学习 发表于 2020-2-14 22:42
小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。



看5楼答案,小甲鱼是对的

major_lyu 发表于 2020-2-15 13:48:12

老牛来学习 发表于 2020-2-14 22:42
小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。



ASCII码在字符‘0’和‘9’之间,的就只有‘0’,’1‘,’2‘,’3‘,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’。所以,只有输入为这几个字符时,A语句才会执行

major_lyu 发表于 2020-2-15 13:50:07

老牛来学习 发表于 2020-2-14 22:44
小甲鱼的答案如下
答:只有当输入为数字时,才会执行语句A。



你可以去仔细看一下continue语句和break语句的作用
页: [1]
查看完整版本: S1E15,C语言问题