件名には少し問題があります: プログラムを作成し、終了するには数字または "ok"を入力するようにユーザーに依頼してください。前に入力したすべての数値の合計を計算し、コンソールに表示します。私は[OK]をタップするとwhile(true)loop中のsystem.formatexception
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見えますが、なぜ私のコードが間違っている知っていますか?
をC#とLINQと同じを得るために何簡潔な方法を見つけていませんか? – zerkms
表示する2番目のソリューションは、Console.ReadLine()によって返された文字列を変数に保存し、それが "ok"に等しくなければ、それを整数に変換して、それをプロプリエリに加算します。 初期のソリューションでは、入力が "ok"と一致しない場合はConsole.ReadLine()を呼び出しているため、新しい入力を整数に変換する場合、Console.ReadLineを "ok"との比較で消費します。 。それがうまくいかない理由です。 – TruthSeeker
私はフィドルで最初のコードを試しました(https://dotnetfiddle.net/4UA4i2を参照)。数字を挿入した後、それは不思議なことに新しい番号をもう一度尋ねて、挿入された最後の数字だけが合計に割り当てられます。また、要求された番号挿入ごとに 'FormatException'を送出しません。 –