鱼C论坛

 找回密码
 立即注册
查看: 2847|回复: 5

求助

[复制链接]
发表于 2020-2-21 19:54:19 | 显示全部楼层 |阅读模式

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

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

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

使用道具 举报

发表于 2020-2-21 20:11:18 | 显示全部楼层
getchar()  这不就是接收缓冲区字符的函数吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-21 21:03:21 | 显示全部楼层
1.if语句的作用就是:如果ch中存放的字符在ASCII码表中处于‘a’之前或者‘z’之后就跳过printf语句。
2.你的printf语句并不是属于if语句,注意你的缩进。
3.printf那一句会报错,应该改成printf("%c", ch)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-23 10:48:22 | 显示全部楼层
linczhw 发表于 2020-2-21 21:03
1.if语句的作用就是:如果ch中存放的字符在ASCII码表中处于‘a’之前或者‘z’之后就跳过printf语句。
2. ...

printf并没有报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 11:02:27 From FishC Mobile | 显示全部楼层
if语句如果不加花括号的话,就只有接下来的一句代码是需要判断的,后面的语句不管if条件是否通过都会执行。但是由于你的if条件后面是continue,所以只要你输入的不是小写字母,printf语句就不会执行。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-23 12:53:21 | 显示全部楼层
wccd 发表于 2020-2-23 10:48
printf并没有报错

符合语法是并不会报错的。但你的代码要输出的内容并不通用。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-2 19:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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