#include<stdio.h> int main() { int i=0; while(i++<=2); printf("%d",i--); }为什么结果等于4

如题所述

while(i++<=2); 这一句在i=3的时候循环结束,但是i++还要执行,所以i=4,printf("%d",i--)输出4之后才会执行--操作
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-09
把i打印出来不就知道i的变化了。
#include<stdio.h>
int main()
{
int i=0;
while(i++<=2)
printf("%d\n",i);
printf("%d",i--);
}
第2个回答  2012-10-09
i i++ i
0 0 1
1 1 2
2 2 3
3 3 当i++ =3跳出循环,但i++ 还执行了=4
(i--)=4

#include<stdio.h> int main() { int i=0; while(i++<=2); printf...
while(i++<=2); 这一句在i=3的时候循环结束,但是i++还要执行,所以i=4,printf("%d",i--)输出4之后才会执行--操作

#include<stdio.h> int main() { int i=0; while(i++<3); printf("%d...
while(i++<3); printf("%d",i);当i=3时 3<3为假,循环停止,然后i=i+1,于是i就是4了,循环结束后才输出i

int i=0;while(i++<=2);printf("%d",i)为什么是4啊
i=4 原因:i++是先进行其他运算,运算终了后再将i加1。所以循环中过程如下:i=0 判断i<=2:成立 i=i+1,于是i=1 继续循环:判断i<=2:成立 i=i+1,于是i=2 继续循环:判断i<=2:成立 i=i+1,于是i=3 继续循环:判断i>2:不成立 i=i+1,于是i=4 跳出循环,程序结束 故最后i=4...

...片段:int i=0;while(i++<=2); printf("%d\\n",i);正确执行结果答案是...
第三次进入的时候 i++ = 2 <= 2; 此时i变化为 3 第四此进入的时候 i++ = 3 > 2; while中止,i变化为4 打印,所以结果为4;还有一个简单的做法; i++ >= 2 的跳出条件为 i++ = 3; 很明显此时i=3; 又做了++; 所以会 变为4,打印的时候就自然是4了。

C语言里,while的循环体一定要用花括号括起来么…
不一定,当循环体的语句超出一句时,需要用花括号括起来,但是如果循环体只有一条语句时,就可以省略花括号。举例如下:include <stdio.h>int main(){int i=0;while(i<3)i++;printf("i=%d",i);}这个循环体只有 i++ 一条语句,执行的结果如下:...

#include<stdio.h> void main() {int i; for(i=0;i<3;i++) switch(i...
\/ i=0时从case 0开始输出 因为没有break所以case0 之后的语句都执行 所以输出000 i=1时,输出default部分 所以1 i=2时,从case2开始,之后的语句也执行 输出22 运行结果是:000122 \/

#include"stdio.h" main() { int i=0; while(i<10) { if(i<1)continue...
include <stdio.h>int main() { int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; } printf("%d\\n",i); return 0;}你这个程序有问题,在于 , 当 i = 0 时,满足 i < 10, 进入 while 循环,由于 i 也小于 1 (i<1) ...

...#include <stdio.h> main() {int i,n=0; for(i=
i = 3时:进入dowhile循环,if(i%3)为假,执行ifcontinue语句,n++,此时i=3, n=2,判断while为假,跳出dowhile循环,执行循环外n++,此时i = 3, n = 3 接着执行for循环i++,i = 4时:进入dowhile循环,if(i%3)为真,跳出ifcontinue循环,不执行n++;判断while(!i)为假,跳出dowhile...

#include<stdio.h> void main() {int i=-1; do{ printf("%d,",i...
printf("%d,",i)这句后面少了一个;分号

#include<stdio.h> int main() { int i,x; while (
include<stdio.h>int main(){int i,x;while (scanf("%d",&x)!=EOF){if (x==1||x==2)printf("yes\\n");else{for (i=2;i*i<=x;){if (x%i==0){printf("no\\n");break;}else i++;}if (i*i>x)printf("yes\\n");} }return 0;} ...

相似回答