2017-11-02 9 views
0

ユーザーが無効な入力を入力した後でもプログラムを実行したい。ユーザーが文字列を入力すると、エラーメッセージが表示されてプログラムが終了しますが、プログラムはユーザーに有効な入力を要求するように依頼します。私はdo/catchの中にtry/catchを入れてみましたが、それは私にとってはうまくいかないようです。C#無効な入力の後にプログラムを実行し続ける方法

 Int16 dollars; 
     try 
     { 
      do 
      { 
       Console.WriteLine("Enter a value, or 0 to exit."); 
       dollars = Convert.ToInt16(Console.ReadLine()); 
       if (dollars >= 1) 
       { 
        Console.WriteLine("your current balance is"); 
        myBank.addMoney(dollars); 
        myBank.getValue(); 
       } 
       else if (dollars < 0) 
       { 
        Console.WriteLine("You have entered a negative number, your current balance is"); 
        myBank.getMoney(dollars); 
        myBank.getValue(); 
       } 

      } while (dollars != 0); 
     } 
     catch 
     { 
      Console.WriteLine("The value you have entered is invalid"); 
      Console.ReadKey(); 
     } 
+3

'do/doの中にtry/catchを入れようとしました。ここに示したコードではありませんでした。しかし、それはまさにあなたが*できたことです。ループ内のエラーを処理し、ロジックを続行します。あるいは、より理想的な代替手段として、 'int.TryParse()'を見て例外をスローすることなく入力をテストすることができます。問題を解決する。 – David

+0

int.TryParse(Convert.ToInt16の代わりに使用できます)を見てください。 Int16型の使用をやめてください。 ;-) –

+0

あなたは 'convert'クラスの代わりに' Int16.TryParse'を使う必要があります –

答えて

3

入力を変換する代わりに、TryParseを使用してください。

+0

ユーザーは特にInt16を使用しました。このコードを反映するように調整します。 –

関連する問題