2016-11-07 4 views
0

入力が数値か整数か範囲かをチェックしてユーザー入力を検証するプログラムを作成する必要があります。間違っている場合は、エラーメッセージをそれぞれ提供する必要があります。私は数値として検証してから別の問題ごとにエラーメッセージを出す方法を見つけられません(ユーザが "10.1"を入力すると "10.1"と入力すると "全体の数」。どれ勧告しなければならないのか。ユーザー入力を数値として検証し、次にTryparseを使用して整数として

 const int INPUT_MIN = 0;  
     const int INPUT_MAX = 50; 
     const int DAILY_COUNT = 7; 

     double totalVehicles = 0.0; 
     int avgDailyVehicles = 0; 
     int highestDay = 0;   
     int lowestDay = 0;   
     int dailySold = 0;   
     string userInput = "";  
     int[] salesArray = new int[DAILY_COUNT];  

     do { 
      for (int dayCount = 1; dayCount <= salesArray.Length; dayCount++) 
      { 

       Console.Write("Please enter the number of vehicles sold on day " + dayCount + ": "); 

       { 

        if (Int32.TryParse(Console.ReadLine(), out dailySold)) 
        { 

         if ((dailySold >= INPUT_MIN && dailySold <= INPUT_MAX)) 
         { 

          salesArray[dayCount - 1] = dailySold; 
         } 

         else 
         { 

          Console.WriteLine("\n" + dailySold + " is not a valid entry. "); 
          Console.WriteLine("The amount must be between {0} and {1}. Please try again.", INPUT_MIN, INPUT_MAX); 
          dayCount--; 
         } 
        } 

        else 
        { 

         Console.WriteLine("\n" + dailySold + " is not a valid entry. "); 
         Console.WriteLine("The amount must be a whole number. Please try again."); 
         dayCount--; 


        } 

       } 
      } 
+0

正確にあなたが捕まってしまった場所が、指摘だろうか? – nozzleman

+0

私にはありませんDoubleTryparseをどこに置くかは、数値であれば数字でも、数値入力でなければ来るかもしれないメッセージであることを知っておいてください –

+0

何について約10.0?それは何を与えるべきですか? –

答えて

0

使用Decimal.TryParse全体の数値、およびInt64.TryParseのために。

+0

数字の数字を置く場所を少し詳しく説明できますか? –

+0

私はブロック全体のif構文解析の周りにifブロックを作ると思います。数字の場合はifを入力し(ロジック全体を取得した場合)、数値でない場合はelseを入力します。 – jamesbascle

関連する問題