首页 新闻 会员 周边

C语言中while语句中循环体的大括号位置如果放在while表达式前面会出现什么情况?

0
悬赏园豆:10 [已解决问题] 解决于 2018-10-25 13:46

include <stdio.h>

int main(void)
{
int ch;
int n=0;
{ //把大括号放到while表示式前面
while((ch=getchar())!= EOF)

putchar(ch);
if(ch=='\n')
n++ ;
}
printf("一共输入了%d行",n) ;
return(0);
}

没有翅膀的脚的主页 没有翅膀的脚 | 初学一级 | 园豆:58
提问于:2018-10-25 12:29
< >
分享
最佳答案
1

用书上的知识推理的话.
应该是什么都不会发生.while循环执行的代码只有一行
while((ch=getchar())!= EOF)putchar(ch);
大括号是一个代码块.

收获园豆:10
吴瑞祥 | 高人七级 |园豆:29449 | 2018-10-25 12:36

你好,我刚在编译器上运行时发现,无论输入多少行,n一直为0,如果把大括号放到正确的位置,n就可以正确显示,这是为什么呢?

没有翅膀的脚 | 园豆:58 (初学一级) | 2018-10-25 13:09

@没有翅膀的脚:
书上说了的.ifwhilefor这种语句.如果后面没有大括号.他们的作用范围就是紧跟着的第一个语句.
仅此而已.前面的大括号有跟没有.都一样.

吴瑞祥 | 园豆:29449 (高人七级) | 2018-10-25 13:41

@吴瑞祥: 谢谢!

没有翅膀的脚 | 园豆:58 (初学一级) | 2018-10-25 13:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册