即使添加了中断,程序也不会停止运行

  • 本文关键字:运行 程序 添加 中断 c++
  • 更新时间 :
  • 英文 :


在我选择p作为类摘要后,我的代码继续运行。它只是一遍又一遍地无限地打印类摘要。有人能指出我做错了什么吗?我包含了break子句,所以它不应该在打印完成后中断吗,即使我把它设置为while循环?

bool loop = true; 
while(loop) { 
switch(selection) { 
case 'a': 
cout << "Please enter student (First Last Grade) info:"; 
cin >> first_name >> last_name >> grade; 
full_name = first_name + " " + last_name; 
names.push_back(full_name); 
grades.push_back(grade); 
cout << "selection:" << endl; 
cin >> selection;
break; 

case 'r': 
cout << "Please enter student (First Last Grade) info:"; 
cin >> first_name >> last_name >> grade; 
full_name = first_name + " " + last_name; 
for (j = 0; j < names.size(); ++j) { 
if (names.at(j) == full_name) { 
names.erase(names.begin()+j);
}  
}
for (j = 0; j <= grades.size(); ++j) { 
if (grades.at(j) == grade) { 
grades.erase(grades.begin()+j); 
}
break;
case 'p': 
cout << "Class Summary" << endl; 
cout << "------------------------" << endl; 
cout << "Name" << setw(20) << "Grade" << endl;
cout << "---------" << setw(18) << "--------" << endl; 
for (j = 0; j < names.size(); ++j) { 
cout << names.at(j) << setw(12) << grades.at(j) << endl;
average += grades.at(j);
}
cout << "Number of Students:" << endl;
cout << "-------------------" << endl; 
avgGrade = average/names.size(); 
cout << "Average Grade:" << endl;
cout << "--------------" << endl;
cout << avgGrade << endl; 

break;
}
}
}


return 0;
}

switch语句中的break语句只会跳出switch语句,而不会跳出循环。必须在循环的之外添加break语句

最新更新