在該循環中(假設amount
是2時),而不是打印:C++ for循環和switch語句的邏輯錯誤
1. [op1]
2. [op2]
它打印:
1. [op1]
2. [op2]
3. [op3]
4. [op4]
5. [op5]
爲什麼呢?我怎樣才能解決這個問題?
for(int i=1;i<=amount;i++){
//string s;
switch(i){
case 1:
cout << i << ". " << op1 << endl;
//s = op1;
case 2:
cout << i << ". " << op2 << endl;
//s = op2;
case 3:
cout << i << ". " << op3 << endl;
//s = op3;
case 4:
cout << i << ". " << op4 << endl;
//s = op4;
case 5:
cout << i << ". " << op5 << endl;
//s = op5;
}
//cout << i << ". " << s << endl;
}
認爲開關是一個榮耀的'goto':它跳轉到一個案例,只是從那裏去,好像案件是一個標籤和標籤由'switch'表達式選擇,要停止執行,在case結尾使用'break;' – GManNickG 2011-03-21 19:58:54
實際上你應該獲得'[op1] [op2] [op3] [op4] [op5] [op2] 【O p3] [op4] [op5]',對吧? – Vlad 2011-03-21 19:59:43
@Vlad - 是的,這是OP應該得到的。 – 2011-03-21 20:09:53