C语言while循环

#include <stdio.h>
main()
{
int x=15;
while(x>10&&x<50)
{
x++;
if(x/3){x++;break;}
else continue;
}
printf("%d\n",x);
}
运行结果为17
我认为,运行结果为49,因为当x=17时,x++后x=18,18/3==0,为假,运行continue语句,结束本次循环,继续运行上面while语句
break在循环体内只是跳出本层循环啊,怎么这个循环就运行次呢?

是17。
解释:运行到while循环里第一个x++后,x的值为16。然后进行if(x/3),因为此时x=16,除以3以后有余数(/符号为求余),所以x/3为真(true),因此执行if下面的循环{x++;break;} ,执行后x的值又增加1,为17.然后break;程序跳出循环,跳到printf语句,输出此时x的值17.
你可以单步运行一下程序,和我说的是一样的。

补充if(x/3)意思是:当x/3有余数时为真,没有余数时为假。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-03
结果就是17
#include <stdio.h>
main()
{
int x=15;
while(x>10&&x<50)
{
x++;//x=16
if(x%3)//x%3为真或按你写的x/3也为真
{x++;//x=17
break;//跳出循环
}
else continue;
}
printf("%d\n",x);//打印,x=17
}
//补充
if语句不是循环体,不存在跳出问题,跳出本层循环为while本回答被提问者采纳
第2个回答  2008-03-03
循环只运行了一次,
x++后x=16
16/3=5真
执行{x++;break;}
x=17跳出循环,打印x为17
第3个回答  2008-03-03
18/3==0,为假???
为什么呢,这里是整除,得6
大于0即为真
就执行break跳出循环了
相似回答