所以我試圖做一個簡單的應用程序,測驗用戶。它會提出一個問題,用戶回答1,2,3或4.然後,應用程序將採用該答案,如果正確,則會在最後顯示的total_score中添加+1。一切看起來都對我有用,但是當我運行它並且到達if (q1_valid == false)
部分時,它跳過cout並運行goto,無論q1_valid是true還是false。C++ if ... then語句
#include <iostream>
using namespace std;
int main()
{
int q1_answer;
int total_score;
bool q1_correct;
bool q1_valid;
Question_1:
cout << "Question 1 (#3 is correct)" << endl;
cout << "1.) Answer 1" <<endl;
cout << "2.) Answer 2" <<endl;
cout << "3.) Answer 3" <<endl;
cout << "4.) Answer 4" <<endl;
cin >> q1_answer;
if (q1_answer == 1)
q1_correct = false;
q1_valid = true;
if (q1_answer == 2)
q1_correct = false;
q1_valid = true;
if (q1_answer == 3)
q1_correct = true;
q1_valid = true;
if (q1_answer == 4)
q1_correct = false;
q1_valid = true;
if (q1_valid == false)
cout << "Invalid answer." <<endl;
goto Question_1;
if (q1_correct == true)
cout << "Correct!" <<endl;
(total_score + 1);
goto Question_2;
if (q1_correct == false)
cout << "Incorrect." <<endl;
goto Question_2;
if (q1_valid == false)
goto Question_1;
Question_2:
cout<< "Q2" <<endl;
cin.ignore();
cin.ignore();
}
用於下一次提示:反引號是主代碼的報價。對於塊引用代碼,可以縮進四個空格或按下「{}」按鈕。 – 2011-05-27 21:34:03
你使用C++多久了?你需要用花括號包裝你的if語句。 – 2011-05-27 21:34:11
這是實際的代碼嗎?導致你的if似乎有很多陳述,但只有一個實際上與if相關,因爲你不使用{} – 2011-05-27 21:35:16