c++语言 while难题 在线等高手解答

来源:百度知道 编辑:UC知道 时间:2024/07/02 11:13:44
下面这个程序的输出是什么?
#include <stdio.h>
main()
{
int y=10;
while(y- -);
printf("y=%d\n",y);
}
答案是什么呢?请大虾做解答简要过程,在线等待

答案是输出"y=-1"
#include <stdio.h>
main()
{
int y=10;
while(y--); //因为此时你的while后面加了分号,也就是这循环体为空。y=0时就会退出循环,并且y--是先使用后减少,所以退出时y=-1
printf("y=%d\n",y); //所以此时输入的y=-1;
}

结果:y=-1
因为:while(y- -); 是整个循环体,而循环体中没有语句,但y不断地自减,直到为0时跳出循环。但跳出后,y--再自减一次,变为-1
最后执行printf("y=%d\n",y);输出结果-1

while(y- -);
注意后面的分号,上面的语句等价于:
while(y- -)
{
}
y=0的时候退出循环,然后y--,所以结果应该是-1.

刚才看错了,while语句后面有分号。
结果应该是-1,因为:y=0时,一执行while语句,y--后y=-1;

自然是-1了,并且只打印一次

y-- 是先引用,后减1

当y为0时,while退出,但是y还是要减1的

结果为:0