C语言解答,do-while循环

img


好难啊,C语言,C语言第一遍123不是已经运行吗,如果是122没有完成dowhile循环吗

执行一次就退出了!因此只会打印123
x=123;执行打印之后,x--之后的x的值等于122;!x的值等于0,导致do while的条件不满足,跳出循环,程序结束。

执行输出一次123之后 while(!x) x不为0,那就!x就是假,条件不成立,结束循环了

do...while循环,无论条件是否成立,至少都会执行一次,但x=123的时候,!x结果是为false,条件不成立,进入循环体,输出x--,但是--在x的后面,先输出,再参与计算,所以输出结果是123.

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: while循环 dowhile循环 for循环(C++)中的 do while循环 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

          do-while循环的一般形式为:

    do{
        语句块
    }while(表达式);

          do-while循环与while循环的不同在于:它会先执行“语句块”,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次“语句块”。

          用do-while计算1加到100的值:

    #include <cstdio>
    int main(){
        int i=1, sum=0;
        do{
            sum+=i;
            i++;
        }while(i<=100);
        printf("%d\n", sum);
        return 0;
    }

    运行结果:
    5050

    注意while(i<=100);最后的分号;,这个必须要有。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^