首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

很有趣的一段代码。高手可以看下。该怎么处理

2012-02-07 
很有趣的一段代码。高手可以看下。。。Numberone:#includestdio.hintmain(){inta10while(a++ 10)//这里

很有趣的一段代码。高手可以看下。。。
Number   one:

#   include   <stdio.h>
int   main()
{
int   a=10;
while   (a++ <10);//这里多了个分号,结果可以运行A值为11.dev-c++编译下通过~  
printf( "a   is   %d!\n ",a);
getchar();
}


Number   two:
#   include   <stdio.h>
int   main()
{
int   a=10;
while   (a++ <10)//少了个分号就不行了:(。。。
printf( "a   is   %d!\n ",a);
getchar();
}
汗死。。。小弟百思不得其解~高手指教下。。。。最好能讲清楚里面发生的事情。。整个过程。。给出好答案马上结贴~^_^。。。




[解决办法]
LZ好象都说了。
while()
判断 条件成立否
不成立就跳过他的下句 printf...
while();
成立不成立都不会做什么,都会经过printf...

[解决办法]
仔细看一下我上面的回复,好好体会一下while的语法

while(condition)
statement

while(a++ <10);-----------> while(a++ <10)
; 《------------statement是空语句
~~~~~注意这里!

while(a++ <10) -------> while(a++ <10)
printf( "%d ", a); printf( "%d ", a); 《------statement是printf语句

下面那种情况因为a++ <10的条件不成立,所以不会调用printf语句。
[解决办法]
我才晕了。
while()语句需要同下面一个语句联合使用,即while的作用域为其下面的一个语句或由{}包含的多个语句,你这个题中while()里面条件不成立,即下面那个;不成立就,即不运行;语句,而直接跳向下一条printf语句。当你没有;是while()于printf();在同一个作用域,即while()不成立时printf();不执行。

热点排行