"done"と入力すると、数値が追加されず、結果が表示されます。 "if"ステートメントを "catch"ステートメントにスキップするだけです。私はすでに別の場所に "if"ステートメントを置こうとしましたが、 "result"が "try"ステートメントの内部にあるため、できませんでした。助けてください。 これは次のようになっています:数字(5)を入力してから「Enter」を押し、次に別の数字(5.3)を入力して「Enter」をもう一度押すと、「10.3」(5 + 5.3 = 10.3)。本当に長いテキストのために申し訳ありません、私はどんな助けにも感謝します。C#、私のコードはtry-catchステートメント内の私のifステートメントを飛び越えます
while (true)
{
Console.WriteLine("Enter a number or type \"done\" to see the average: ");
var input = Console.ReadLine();
try
{
var result = double.Parse(input);
if(input == "done")
{
Console.WriteLine(result += result);
break;
}
else
{
continue;
}
}
catch (FormatException)
{
Console.WriteLine("That is not valid input.");
}
if文に一度も当てはまらない場合は、その前に何か例外が発生しています。これは捕捉されているものです。入力が「完了」であれば、それがどのようにダブルになると思いますか? –
"done"と等しい場合は、入力をdouble _before_ checkingに解析しようとします。つまり、ユーザーが「完了」と入力すると例外が発生するため、if内のコードは実行されません。 –