這個問題有點問題: 編寫一個程序,並不斷要求用戶輸入一個數字或「ok」退出。計算所有以前輸入的數字的總和,並將其顯示在控制檯上。system.formatexception while(true)loop
這裏是我的代碼:
var sum = 0;
while (true)
{
Console.WriteLine("Enter a number or ok to exit:");
if (Console.ReadLine() == "ok") break;
sum += Convert.ToInt32(Console.ReadLine());
Console.WriteLine(sum);
}
當我點擊確定,就終止。 當我點擊數字並輸入時,它顯示system.formatexception:輸入字符串格式不正確。 我知道解決的辦法之一是
var sum = 0;
while (true)
{
Console.Write("Enter a number (or 'ok' to exit): ");
var input = Console.ReadLine();
if (input.ToLower() == "ok")
break;
sum += Convert.ToInt32(input);
}
Console.WriteLine("Sum of all numbers is: " + sum);
也許我的代碼看起來有點weired,但爲什麼是我的代碼錯了嗎?
因爲你以後再'「確定」進行比較'你扔掉由用戶輸入的號碼? – zerkms
您顯示的第二個解決方案將Console.ReadLine()返回的字符串保存到變量中,如果它不等於「ok」,它會將其轉換爲整數並將其與proplerly相加。 如果輸入與「ok」不匹配,那麼您的初始解決方案會消耗Console.ReadLine,如果輸入不匹配,那麼您將轉換爲整數由用戶重新輸入,因爲您再次調用Console.ReadLine() 。這就是爲什麼它不起作用。 – TruthSeeker
我嘗試了小提琴中的第一個代碼(請參閱https://dotnetfiddle.net/4UA4i2)並在插入一個數字後奇怪地詢問第二次新的數字,並且只插入最後一個數字將被分配給總和。它也不會像聲稱的那樣爲每個數字插入拋出'FormatException'。 –