wccd 发表于 2020-2-21 19:54:19

求助

#include<stdio.h>
int main()
{
        char ch;
        while ((ch = getchar()) != '\n')
        {
      if (ch < 'a' || ch > 'z')
                continue;
                printf("%d",12);
      
        }
}
请问这个if语句不加程序块有什么用啊,为什么输出字母才会打出printf的语句。

wp231957 发表于 2020-2-21 20:11:18

getchar()这不就是接收缓冲区字符的函数吗

linczhw 发表于 2020-2-21 21:03:21

1.if语句的作用就是:如果ch中存放的字符在ASCII码表中处于‘a’之前或者‘z’之后就跳过printf语句。
2.你的printf语句并不是属于if语句,注意你的缩进。
3.printf那一句会报错,应该改成printf("%c", ch)

wccd 发表于 2020-2-23 10:48:22

linczhw 发表于 2020-2-21 21:03
1.if语句的作用就是:如果ch中存放的字符在ASCII码表中处于‘a’之前或者‘z’之后就跳过printf语句。
2. ...

printf并没有报错

维生素C鱼油 发表于 2020-2-23 11:02:27

if语句如果不加花括号的话,就只有接下来的一句代码是需要判断的,后面的语句不管if条件是否通过都会执行。但是由于你的if条件后面是continue,所以只要你输入的不是小写字母,printf语句就不会执行。

linczhw 发表于 2020-2-23 12:53:21

wccd 发表于 2020-2-23 10:48
printf并没有报错

符合语法是并不会报错的。但你的代码要输出的内容并不通用。
页: [1]
查看完整版本: 求助