猿问

求助。 结果为什么不是3?

#include<iostream>

using namespace std;

int main()

{

int num=0;

int score=999;

if(score>=0&&score<=999999999)

{

do

{

score/=10;

num++;

}while(score==0);

}

cout<<num<<endl;

return 0;

}


qq_就此别过_0
浏览 1413回答 2
2回答

小雨鱼

输出结果应该是1,为什么呢?首先,do-while会先执行后判断,这样代码先执行,使num的值变成1,之后由于判断条件为false,所以结束循环,输出的结果就是1了。如果你想输出3,那么,while里面的条件可以改为score!=0,要知道,只有当while里面的值为真时,才会继续循环。。。你错在没有搞懂while里面的条件对于循环的影响,其实while-do和do-while都是一样的判断条件,只是一个是先判断后执行,一个是先执行后判断

思君满月

应该是4吧
随时随地看视频慕课网APP
我要回答