所以我有一個do ... while語句,應該重複,除非用戶輸入四件事之一。這四件事情有一個突破,他們將控制while的變量設置爲true,其中默認值爲false。如果用戶沒有輸入四個答案中的任何一個,那麼變量將保持爲假,這應該使...再次開始。它沒有。把開關放在做...而
#include <string>
#include <iostream>
using namespace std;
int main()
{
int q5_answer = 1;
int q5_answerU;
int total_score;
bool q5_valid = false;
//Question_5:
do
{
cout << "Question 5 (#1 is correct)" <<endl;
cout << "1.) Answer 1" <<endl;
cout << "2.) Answer 2" <<endl;
cout << "3.) Answer 3" <<endl;
cout << "4.) Answer 4" <<endl;
cin >> q5_answerU;
switch (q5_answerU)
{
case 1:
cout << "Correct!" <<endl;
q5_valid = true;
(total_score = total_score + 1);
break;
case 2:
cout << "Incorrect" <<endl;
q5_valid = true;
break;
case 3:
cout << "Incorrect" <<endl;
q5_valid = true;
break;
case 4:
cout << "Incorrect" <<endl;
q5_valid = true;
break;
default:
cout << "Invalid answer" <<endl;
}
} while (q5_valid = false);
}
打我吧! – 2011-05-28 17:37:19
或者使用'while(false == q5_valid)' - 這適用於其他測試,而不是布爾值('42!= answer'),編譯器會自動捕獲意外的任務 – sehe 2011-05-28 17:39:23
@sehe:更好地打開編譯器警告並觀察請他們。 ;) – Xeo 2011-05-28 17:43:10