我不明白当用户输入“ Y”时此循环如何重复。所有的代码都在“ do”部分;重复一次吗?之后,while语句只是一个返回语句。
int main()
{
int score1, score2, score3; //three scores
double average; // Average score
char again; // To hold Y or N input
do
{
/Get three Scores.
cout << "Enter 3 scores and i will average them: ";
cin >> score1 >> score2 >> score 3;
//calculate and display the average
average = (score1 + score2 + score 3)/3.0;
cout << "The average is " << average << :.\n;
// Does the user want to average another set?
cout << "Do you want to average another set? (Y/N) ":
cin >> again;
} while(again == 'Y' || again == 'y');
return 0;
}
教科书的解释太简短了,没有点击我的脑袋。谢谢您的宝贵时间。
答案 0 :(得分:2)
您正在查看的是 do-while循环。它是与 while循环不同的构造。
在cppreference.com上,重点是我的:
while ( <condition> )
{
// code
}
重复执行一条语句,直到condition的值变为false。 测试在每次迭代之前进行。
do
{
// code
} while ( <condition> );
重复执行一条语句,直到expression的值变为false。 测试在每次迭代之后进行。
答案 1 :(得分:2)
这样做之后,您就不会有while循环了。您在任何地方都没有while循环! while只是终止do循环的一种方式。
答案 2 :(得分:1)
循环的主体从<font-awesome-icon
icon="spinner"
size="3x"
spin fixed-width>
</font-awesome-icon>
之后的{
开始,到do
之前的}
结束。
似乎您熟悉while
循环,现在您只需要了解while
循环的结构稍有不同(条件在主体之后,而不是在主体之后)。
示例:
do-while
请注意,它们并不等效,通常根据进行迭代之前或之后检查条件是否更自然来选择一个或多个。
答案 3 :(得分:0)
我将其简化为相关部分,并使用伪代码:
l1 = {k: [e.get(k) for e in your_list][i::4] for i, k in enumerate(['a', 'b', 'c', 'd'])}
l1
>>
{'a': [32, 544, 42, 2145],
'b': [2541, 44, 655, 450],
'c': [530, 54, 459, 342],
'd': [55, 454, 665, 186]}
关键是循环运行直到变量“再次”为Y或y。
然后根据用户输入再次在循环内设置变量。
将这两件事放在一起,您会发现循环一直运行到用户输入Y或y为止。
答案 4 :(得分:0)
我知道我缺少了一些东西,但是while循环中什么也没有, 输入“ Y”如何使它返回?做应该发生一次 然后执行while循环。我不明白是什么 使循环返回
while
关键字需要一个条件来确定是否应执行其体内的代码。在您的情况下,您已经给出了条件,如果变量again
设置为'y'或'Y',则应执行循环。
} while(again == 'Y' || again == 'y');
有关while
与do-while
循环结构的详细说明,请参见此link。