2011-08-06 11 views
2

私はC#に新しく、0〜5の範囲のwhileループを使用して検証を作成しようとしましたが、この範囲を使用すると文字列私はこれを止め、整数0〜5しか許さないのですか?C#whileループの範囲0 - 5

これまでの私のコード

static void Main() 

    { 
     int Rateing1, Rateing2; 

     Console.Write("Please rate from 0 - 5: "); 
     Rateing1 = valid_rating(); 

     Console.Write("\nPlease rate from 0 - 5: "); 
     Rateing2 = valid_rating(); 

     Console.WriteLine("\nRateing1 is {0}", Rateing1); 
     Console.WriteLine("Rateing2 is {0}", Rateing2); 
    } 

    static int valid_rating() 

      { 
      int rating; 

      int.TryParse(Console.ReadLine(), out rating); 
       while (rating < 0 || rating > 5) 
        { 
         Console.Write("\nInvalid Input, please input an integer from 0 - 5"); 
         Console.Write("\nPlease enter new rating: "); 
         int.TryParse(Console.ReadLine(), out rating); 
        } 
      return rating; 
      } 
+0

Int.TryParse()? –

+0

は "valid_entry"文字列ですか?あなたが宣言したことを示すことができますか? –

答えて

4
これにあなたのループを変更

while (!int.TryParse(Console.ReadLine(), out rating) || rating < 0 || rating > 5) 
{ 
    Console.WriteLine(); 
    Console.WriteLine("Invalid Input, please input an integer from 0 - 5"); 
    Console.Write("Please enter new rating: "); 
} 

つまり、任意の次のが真である場合は、ユーザが再び入力を入力します:

  • 無効な番号を入力しました。
  • 、彼らが入力された数が0未満
  • である彼らは入力された数が5より大きい

あなたの問題はあなたがbool成功を示すである(int.TryParseによって返された値を使用していなかったということでしたですまたは失敗)。 ratingに書き込まれた値を単に使用していましたが、失敗の場合は0(および!(0 < 0))です。

+0

クイック返信ありがとう:)完璧に働いた – Joshua