int i=1,j=0 ;
while(i+j<=10)if(i>j)j++;else i++;
printf("%d",j);
请问这个程序为什么没有死循环?
为什么while后面没有花括号{ }
但else还是被执行了?
if和else是匹配的,while循环里只有一项就可以不加括号。这里把if和else看作一项。
if-else是一个语句
第一次循环:j+1=1, i=1;
第二次循环:i+1=2, j=1;
第三次循环:j+1=2, i=2;
第四次循环:i+1=3, j=2;
第五次循环:j+1=3, i=3;
第六次循环:i+1=4, j=3;
第七次循环:j+1=4, i=4;
第八次循环:i+1=5, j=4;
第九次循环:j+1=5, i=5;
第十次循环:i+1=6, j=5;
然后不满足循环条件:i+j<=10,循环结束,没有死循环