问题描述
我用C ++编程已经花了几周的时间,而且我很难理解Do-While循环。具体来说,我不理解这段代码
#include<iostream>
using namespace std;
int main()
{
int sum = 0;
int y = 0;
do
{
for ( int x = 1; x < 5; x++)
sum = sum + x;
y = y+1;
} while ( y < 3);
cout << sum << endl;
return 0;
}
及其结果:
30
我不知道它是如何产生30的,如果我能对此特定代码块进行解释,那将是很好的。谢谢。
解决方法
由此可见,代码进入do块,它看到for循环,执行该循环4次,然后继续递增y,然后该过程完成了2次以上。
Condition
if position=="Staff":
emp.dayWorked=input("Day worked in a month:")
//error
emp.pay()
emp.display()
elif position=="Executive":
exe.dayWorked=input("Day worked in a month:")
exe.pay()
emp.display()
elif position=="Clerks":
clk.dayWorked=input("Day worked in a month:")
clk.addHours=input("Overtime:")
clk.pay()
emp.display()
,
您的程序执行10 + 10 + 10,因为您编写了程序,所以它执行的是小于5的整数之和。
您说在y
, do ... while (cond)
循环以这种方式工作,即条件cond
在循环的第一次迭代之后被检查(因此它至少经历了一次迭代)。当您首先进入该循环时,会遇到for
循环,该循环将范围从1到4的所有整数相加。外循环第一次迭代后sum
的结果为10,值{{1} }现在为1,因此我们进入下一个迭代。再次,我们对内循环中的所有数字求和,并将结果加到y
的前一个结果(为10)中,现在的结果为20。我们将sum
递增,因此为2,条件{ {1}}仍然成立,因此我们进入下一个迭代。同样,我们对数字求和,y
现在为30,并且我们递增y < 3
,所以它为3。sum
循环的条件不再成立,因为y
现在为3,它不小于3。这时do ... while
为30,并打印在标准输出上。