3

正しいタイプの値を入力していることを確認し、再度入力する必要があるポイントに到達する方法が必要です。メソッドの先頭に到達するために再帰は必要ありません。値を入力している場所に到達するために何かが必要です。ループを使用することになっていることはわかっていますが、その方法がわかりません。これはメソッドの一部です:

console.writeline("Enter your value");
double kv = 0;
try
{
    kv = Convert.ToDouble(Console.ReadLine());
}
catch (FormatException)
{
    Console.WriteLine("Enter a number");
}
4

4 に答える 4

6

Double.TryParsetry/catch の代わりに使用します。

Console.Writeline("Enter your value");
double kv;
while (!Double.TryParse(Console.ReadLine(), out kv))
    Console.WriteLine("Enter a number");
于 2013-06-24T18:29:13.250 に答える
6

この特定のパターンに従うことができます:

var data = GetValueFromUser();
while(!IsValid(data))
{
    InformUserTheirDataIsBad();
    data = GetValueFromUser();
}
//data is now valid
于 2013-06-24T18:29:19.877 に答える
2

TryParse を使用する

        double kv = 0;
        Console.WriteLine("Enter your value");
        while (double.TryParse(Console.ReadLine(), out kv) == false)
        {
            Console.WriteLine("Enter your value");
        }
于 2013-06-24T18:31:05.057 に答える
0

do whileループも使用できます。

double kv = 0;
bool invalid = false;
do
{
   console.writeline("Enter your value");       
   try
   {
      kv = Convert.ToDouble(Console.ReadLine());
      invalid = false;
   }
   catch (FormatException)
   { invalid = true;}
} while (invalid);
于 2013-06-24T18:35:14.330 に答える