2014-12-03 62 views
-1

我是編程新手,我需要幫助完成本次作業。我試圖尋找這個問題,但因爲我對編程完全陌生,所以我不知道應該尋找什麼。使用循環將輸入限制爲只有y/n

我的問題是,如果用戶沒有輸入'y'或'n',我希望程序再次詢問他們同樣的問題,這樣程序只會在用戶輸入'y'或' n'

我在下面寫的代碼讓我進入循環,它會一直問我「輸入另一個值(y/n)?:」而不管我的回答如何。

do{ 
    cout << "Please enter a numerical value: "; 
    cin >> value[n]; 
    n++;  
    do{ 
     cout << "Enter another value (y/n)?: "; 
     cin >> ans; 
    } while (answer != 'y' || answer != 'n'); 
} while (answer == 'y'); 
+9

'(answer!='y'|| answer!='n')'總是如此。它必須同時等於'y'和'n'才能跳出循環。 – 2014-12-03 16:39:47

+0

**請**不要用代碼或直接解決方案回答此問題。 – 2014-12-03 16:40:49

回答

3

真值表時間:

answer | not y | not n | not y OR not n 
--------------------------------------------------- 
    y  | false | true |  true 
    n  | true | false |  true 
    x  | true | true |  true 

正如你所看到的,有沒有辦法讓你的病情false。當輸入是yn時,您希望是false,但這不是發生的情況。你怎麼解決這個問題?你怎麼能只在最後一行true

+0

會回答!='y'&& answer!='n' – Pilly 2014-12-03 17:03:25

+0

@Pilly Nope,因爲'x'也會給出'false'。 – 2014-12-03 17:07:11