2017-02-10 49 views
-3

所以,當我把整數範圍的開關情況下使用我一直得到默認的輸出例如一個無窮數:如何使用一個開關case語句while循環(C++)

int (num); 
cout<<"Choose a number between 1-5"<<endl; 
cin>>num; 
while (num<1 || num>5) 
{ 
switch (num) 
{ 
    case 1: 
    cout<<" Good"<<endl; 
    break; 
    case 2 : 
    cout<<" Okay"<<endl; 
    break; 
    case 3: 
    cout<<" Decent"<<endl; 
    break; 
    case 4: 
    cout<<" Nice Try"<<endl; 
    break; 
    case 5: 
    cout<<"Failed"<<endl; 
    break; 
    default 
    cout<<" Not Valid"<<endl; 
    break; 
{ 
{ 

因此對於這個例子,我將如何讓用戶從1-5中進行選擇,如果不重複循環以便他們再次嘗試。

+1

其中,在循環內部,是否修改'num'? – NathanOliver

+0

你忘了要求用戶提供一個新的輸入,如果它是無效的。 –

+1

請提供符合語法和格式正確的代碼。 – Arkadiy

回答

2

這將循環,直到給出有效數字,然後在開關盒中測試它。

int num; 
cout<<"Choose a number between 1-5"<<endl; 
while(cin>>num && (num < 1 || num > 5)); 
switch (num) 
{ 
    ... //for brevity 
} 

這將循環切換案例,直到給出有效的輸入。

int num; 
bool keepLooping = true; 
cout<<"Choose a number between 1-5"<<endl; 
while(cin>>num && keepLooping) 
{ 
    keepLooping = false; 
    switch(num) 
    { 
     ... //for brevity 
     default: 
      keepLooping = true; 
    } 
} 
+1

我無法編輯,因爲我只需要添加1個字符。你的'while'在結束之前缺少一個右括號。 –

+0

固定,多虧了指出 – user3853544

+0

我輸入一個錯誤的整數,然後把一個正確的一個它不再顯示對應於某些情況下的輸出 – Rafael