很有趣的一段代码。高手可以看下。。。
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();不执行。