循环 不懂为什么会打印出104?

img

img


不懂为什么会打印出104?不是当x=103后就不能再循环了吗,又怎么会继续自增到104?请详细解释一下,谢谢

对,当a=103的时候不能进入循环,但是他要判断,a++(此时是103,后置++,先判断,后++)然后判断不成立,就不进入循环了,判断结束后,后置++,a=104了。

第一个printf是while循环内执行的,第二个是while循环结束后执行的
当x=103时,while条件不满足,循环结束,但由于x++的缘故,x还需要加上1,所以x=104

while没有用大括号括起来,第二个printf会打印104

首先,你的程序写的没有错误。
while语句的语义是先计算表达式的值,当计算的结果为非0时,执行循环体语句。重复上述操作,直到表达式的值为0时,跳出循环,转而执行while语句的后续语句。x++是x的自增,这个程序就是先把x自增之后,再跟103作比较。当x=103时,while条件不满足,循环结束。两个printf,但是表述的意义不一样,第一个是在while循环语句内的打印函数,另一个是在循环语句外的打印函数。但是x还在自增,所以x=104就打印输出了。
希望我的回答能够帮到你,如果对你有帮助的话,欢迎采纳我的回答。