以下程序段的描述,正确的是( )。
x=-1;
do
{
x=x*x;
}while(!x);
A.是死循环
B.循环执行两次
C.循环执行一次
D.有语法错误
首先在没有定义int的情况下为什么不选语法错误,其次它为什么不是死循环而是只会执行一次循环呢(按理来说x在执行一次循环后不应该一直是1然后死循环吗)
以下程序段的描述,正确的是( )。
x=-1;
do
{
x=x*x;
}while(!x);
A.是死循环
B.循环执行两次
C.循环执行一次
D.有语法错误
首先在没有定义int的情况下为什么不选语法错误,其次它为什么不是死循环而是只会执行一次循环呢(按理来说x在执行一次循环后不应该一直是1然后死循环吗)
循环执行一次,选择C
x=-1
然后x=x*x,所以x=1
x是true
!x是false
所以while判断,跳出循环
只执行了1次。