我不太确定while(选择== 1 ||选择== 2); 任何人都可以解释我理解这个
if(choice ==1)
displayMonthly(rainfall);
else if(choice == 2)
displayTotal(rainfall);
我只是不明白这之后的代码。任何人都可以向我解释。
int main()
{
//declare variable and array
int choice = 0;
double rainfall[12] = {0.0};
//get rainfall amounts
for(int x =0;x<12;x++)
{
cout << "Enter rainfall for month "<< x+1<< ": ";
cin >> rainfall[x];
}
do
{
//display menu and get menu choice
cout <<endl;
cout << "1 Display monthly amounts" << endl;
cout << "2 Display total amount" << endl;
cout << "3 End program" << endl;
cout << "Enter your choice : ";
cin >> choice;
//call appropriate function or end program
if(choice ==1)
displayMonthly(rainfall);
else if(choice == 2)
displayTotal(rainfall);
}while (choice == 1 || choice ==2);
return 0;
}
答案 0 :(得分:3)
只要选择为1或2,它就会告诉你保持循环,但它与if语句完全分开。
也可以编码为
while(true) {
cout stuff...
if(choice==1)
...
else if(choice==2)
...
else
break;
}
这可能会更具可读性,但是如果他们看到的话,一些老学生会发现它们(真实的) - 过去常常被人们视为一个巨大的红旗,表明潜在的错误(显然是任何完全无法做到的人)分析代码,因为功能没有区别。)
答案 1 :(得分:1)
这是一个do ... while
循环。我们的想法是,只要条件(choice == 1 || choice ==2)
为真,块内的代码就会继续执行。
以下是来自cplusplus.com article on Control Structures:
的更多信息在(条件);
时做声明它的功能与while循环完全相同,只是do-while循环中的条件是在执行语句之后而不是之前计算的,即使条件永远不会满足也至少执行一次语句。例如,以下示例程序会回显您输入的任何数字,直到输入0。
当在循环语句本身内确定必须确定循环结束的条件时,通常使用do-while循环,就像前一种情况一样,块中的用户输入是用于确定的内容如果循环必须结束。实际上,如果您在上一个示例中从未输入值0,则可以提示您永久保留更多数字。
你也可以这样思考。如果您始终希望块中的代码至少执行一次,则可以使用do-while结构。这是你的程序中的情况,因为你总是想要显示提示,并且只能决定在你收到并处理用户输入后循环是否会继续。
答案 2 :(得分:0)
在此应用中,如果用户点击1或2,则表示他们希望看到每月或总降雨量。这意味着他们没有要求“结束计划”。该代码假定如果用户选择1或2,则应继续使用该应用程序。如果他们选择了其他任何东西(例如。3
,就像菜单上所说的那样)那么条件choice == 1 || choice == 2
将评估为false
并且循环终止,导致应用程序关闭。
答案 3 :(得分:0)
基本上这里的do ... while循环只要选择为1或2就会不断重复自我。
在'do'之后,提示用户输入他们的选择,1 2或3.如果他们选择1或2,则调用他们各自的功能。然后循环重复。如果他们选择3,则循环不会重复,因此程序结束。
希望这有帮助!