int x=-1 do {x=x*x; } while(! x); 这个循环体执行几次?

如题所述

答案:1 次。

do

x=x*x;

while(!x);

理由:

do 语句先执行 循环体,再判断条件。

x=-1; x=x*x;

x > 0 为真, !x 为假,结束 循环。

扩展资料:

do...while 和 while循环有相似之处,但使用方法完全不同,一个是直到型循环,另一个是当型循环。区别在于表达式的值是在每次循环结束时检查而不是开始时。

和正规的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在正规的 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 FALSE 则整个循环立即终止)。

参考资料来源:百度百科-do while

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-08
int x=-1; 有分号。
循环体 执行 1 次。
x = x*x; 得 正 1。
1 为真。 条件判断 式 !x 得 假, 结束 循环。

c 语言规定 不是 0 的 数,例如 算术值 1,2,3,4,5,-1,-2 ,。。。都是 “真”。
真 做 “非” 运算,就得 “假”(假 用 逻辑值 0 表示)。
(真, TRUE 用 逻辑值 1 表示)本回答被网友采纳
第2个回答  推荐于2018-04-16
1次。因为x=-1x(-1)=1,!1=0,循环就结束了。追问

!1为什么等于0?刚开始学c,很多不懂。。。!是相反的意思,那如果是!2呢,也等于0吗

追答

你不知道'!'是什么操作符?它是“逻辑反”操作符!1不为0,反不是就为0了?C规定不为0的值都是逻辑“真”,用1表示,而0值就是逻辑“假”,用0表示。

追问

大神,我还是不懂!!?。!1=0之后循环为什么就结束了?

追答

那差得太远了,现在就能做这样的题?C规定所有分支控制循环控制逻辑都是“真”继续、“假”终止。while()的()就是循环控制表达式,它为0了还不结束?为0不结束什么时候结束总得有个规定吧,不然不成了死循环了?

本回答被提问者采纳
第3个回答  2018-04-14
C语言里,1表示真的,0表示假的。在你运算结束后,得数为1就是真的,但是,在do循环体后,有一个!1(就是非1的意思,即不是1),不是1代表不是真的,不是真的那就是假的咯,假用什么表示?前面说了,用0表示。所以!1=0明白了吗? 所以最后判断是0(即假),那么就结束循环,在这里只循环了1次。
相似回答