#include<iostream>
#include<string>
using namespace std;
int main()
{
const int SIZE=7;
string tuition[SIZE];
tuition[0]="Student ID";
tuition[1]="total financial aid recieved";
tuition[2]="amount paid for tuition";
tuition[3]="amount paid for fees";
tuition[4]="amount paid for books";
tuition[5]="amount paid for housing";
tuition[6]="amount paid for meal plan";
int costs[SIZE];
for(int index =0;index < SIZE;index++)
{
cout<<"Please enter your "<<tuition[index]<<endl;
cin>>costs[index];
do{
return 0;
}while(costs[0] == 0);
do{
cout<<"Please re-enter the correct data.\n";
cin>>costs[1];
}while(costs[1] < 0);
}
return 0;
}
运行代码时即使条件语句为false,它也会执行条件代码。我很困惑为什么会这样。
答案 0 :(得分:2)
do-while将执行一次或多次。代码在检查条件之前运行。
答案 1 :(得分:0)
因为在do-while循环中,代码将至少执行一次条件体。只使用一个while循环,这将解决您的问题。
答案 2 :(得分:-1)
嗯,这很简单,while while循环可以做到这一点:
Do While(在第一次运行代码后检查条件是否为真)。
如果你希望代码在条件为假时不运行,你应该只使用while循环(没有do部分)
因此,如果您想要完全执行此操作,那么代码应如何显示:
for(int index =0;index < SIZE;index++)
{
cout<<"Please enter your "<<tuition[index]<<endl;
cin>>costs[index];
While(costs[0]==0){
return 0;
}
While(costs[1] < 0){
cout<<"Please re-enter the correct data.\n";
cin>>costs[1];
}
return 0;
}
现在为什么会这样?
如果你理解了2种不同的情况,那就很容易了。
我们有:
**首先检查条件是否为真。
首先运行代码,然后检查是否为true(它将始终至少运行一次代码)。**
这就是为什么你的代码总是运行,因为那就是为什么会这样做。
如tas所示:
如果在这种情况下使用会好得多,为什么?那么在这种情况下你已经使用for循环了,所以如果用if和else if语句改变while,你将得到相同的结果。
在这里,您可以学习如何使用if语句:
https://www.programiz.com/cpp-programming/if-else
额外的,在这里你可以找到如何使用while: