| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6494 人关注过本帖
标题:求教for循环语句后加分号的问题
只看楼主 加入收藏
hulihong
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-5-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
求教for循环语句后加分号的问题
#include "stdio.h"
int main()
{
int a,b,c;
for (a=1;a<3;a++,a++);
printf("a=%d\n",a);
for (b=a;b<3;b+=2);
printf("a=%d,b=%d,c=%d\n",a,b,c);
for (c=b;c<3;c+=2);
printf("a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
此时三个printf语句都能执行,可是将第二或第三个for语句后的分号删去,那么第二或第三个printf语句无法执行。请问为什么呢?
搜索更多相关主题的帖子: include 
2015-05-10 14:05
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:4 
for循环语句后加分号?
2015-05-10 14:27
我爱吃青菜
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:190
专家分:500
注 册:2015-3-29
收藏
得分:4 
for循环后面加分号,表示这个循环是空语句,除了执行for()括号里的,什么都不干。然后就执行下一行,也就是你的prinf,printf和for循环没关系

如果不加分号,那for循环后面的printf语句就是for循环的一部分,跟着for一起执行,但前提是for循环里的条件要满足。执行到第二个for时a已经等于3了,你要b=a,那b怎么可能小于3 。所以后面的for循环不满足条件,不执行,同时for里面的代码也不执行。

[ 本帖最后由 我爱吃青菜 于 2015-5-10 15:15 编辑 ]
2015-05-10 15:14
hulihong
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-5-10
收藏
得分:0 
回复 3楼 我爱吃青菜
谢谢
2015-05-10 15:24
yu1543054075
Rank: 1
等 级:新手上路
帖 子:102
专家分:8
注 册:2015-4-30
收藏
得分:4 
#include "stdio.h"
int main()
{
int a,b,c;
for (a=1;a<3;a++,a++);
printf("a=%d\n",a);
for (b=a;b<3;b+=2)
printf("a=%d,b=%d,c=%d\n",a,b,c);
for (c=b;c<3;c+=2)
printf("a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
这是因为执行完第一个for循环后a=3;此时执行第二个for循环b=a=3,然后执行条件判断b<3?由于b>3所以不执行后面的printf直接跳到第三个for循环,同理第三个for循环
也是因为这个原因不被执行的
2015-05-10 16:16
陆思雨
Rank: 2
等 级:论坛游民
威 望:1
帖 子:36
专家分:42
注 册:2014-9-17
收藏
得分:4 
#include "stdio.h"
int main()
{
int a,b,c;
for (a=1;a<3;a++,a++);//a=1,什么也不输出,自增两次后,a=3,不满足条件,跳出循环;
printf("a=%d\n",a);//输出a=3;
for (b=a;b<3;b+=2);//b=a=3,不满足条件b<3,什么也不执行;
printf("a=%d,b=%d,c=%d\n",a,b,c);输出a=3,b=3,c并未赋值;
for (c=b;c<3;c+=2);c=b=3,不满足条件,什么也不做;
printf("a=%d,b=%d,c=%d\n",a,b,c);输出abc;
你要知道,for语句后是循环体,如果加了分号就表示for语句的循环体是没有任何操作的。
2015-05-11 15:42
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:4 
郝斌的视频里面说,看懂一个程序分三步
1,每条语句的意思
2,程序执行的顺序
3,试数
真是这样,最起码书上的完整程序通过这三步都能看明白

人有多懒,编程就有多难。
2015-05-11 17:38
繁星☆春水
Rank: 1
等 级:新手上路
帖 子:3
专家分:9
注 册:2015-5-11
收藏
得分:4 
for();  加个分号的意思是   for()后面的那个分号直接判定成了空语句,因为;也是一个语句呀.
2015-05-11 18:57
快速回复:求教for循环语句后加分号的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025743 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved