我的代碼多次輸出相同的字符串。例如,輸入 40 會導(dǎo)致“不!您的答案太高。請重試?!?兩次,并且顯示兩次“您的答案太低”。while (numberguess != 40.5){ numberguess = Console.Read(); if (numberguess < 40.5) { Console.WriteLine("Nope! Your answer is too low. Try again."); } else if (numberguess > 40.5) { Console.WriteLine("Nope! Your answer is too high. Try again."); } else if (numberguess == 40.5) { Console.WriteLine("Correct! Wow, I didn't really think you would figure it out!"); break; }}我希望在輸入數(shù)字時只顯示一個字符串,并且我希望它能夠?qū)?yīng)于它是低于還是高于特定數(shù)字。
2 回答

慕標5832272
TA貢獻1966條經(jīng)驗 獲得超4個贊
這條線有幾個問題:
numberguess = Console.Read();
首先,它返回一個 int,因此它永遠不會返回 40.5。此外,它一次讀取一個字符,包括通過 Enter 鍵輸入的字符,因此當您鍵入 40 并按 Enter 時,它會讀取“4”,然后是“0”,然后是“\r”,最后是“\n”(將這些字符轉(zhuǎn)換為字符到整數(shù))。這就是它顯示四條消息的原因。
相反,您必須讀取在 Enter 之前鍵入的所有內(nèi)容Console.ReadLine()
,然后將其(字符串)轉(zhuǎn)換為雙精度型。所以最后你必須這樣做:
numberguess = double.Parse(Console.ReadLine());

蕭十郎
TA貢獻1815條經(jīng)驗 獲得超13個贊
Console.Read() 將單個字符讀取為 int。如果您試圖獲取用戶在按 Enter 鍵之前輸入的內(nèi)容,請讀取當前行,然后從中解析一個整數(shù)。
int.Parse(Console.ReadLine());
- 2 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報
0/150
提交
取消