2016-08-03 6 views
-1

私は簡単なコンソールアプリケーションを持っています。ここにコードがありますコンソールアプリケーションで数字だけを入力する方法C#

namespace ConsoleApplication3 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     int n, sum; 
     sum = 5000; 
     Console.WriteLine("enter number of conversations"); 
     n = int.Parse(Console.ReadLine()); 
     if (n <= 100) 
     { 
      sum = sum + n * 5; 
     } 
     else 
     { 
      sum += (100 * 5) + (n - 100) * 7; 
     } 
     Console.WriteLine(sum); 
     Console.ReadKey(); 
     } 
    } 
} 
+1

何が問題なのですか? – Idos

答えて

2

これはトリックを行う必要があります。この場合、あなたのための

Console.Write("enter number of conversations "); 
int n; 

while(!int.TryParse(Console.ReadLine(), out n) 
{ 
    Console.Clear(); 
    Console.WriteLine("You entered an invalid number"); 
    Console.Write("enter number of conversations "); 
} 

if(n <= 100) 
    //continue here 
2

ベットオプションはint.TryParse代わりのための無効な入力を決定するのに役立ちますint.Parse()です。以下のロジックを実装して動作させることができます。

Console.WriteLine("enter number of conversations"); 
if(int.TryParse(Console.ReadLine(), out n) 
{ 
    if (n <= 100) 
    { 
     sum = sum + n * 5; 
    } 
    else 
    { 
     sum += (100 * 5) + (n - 100) * 7; 
    } 
    Console.WriteLine(sum); 
} 
else 
{ 
    Console.WriteLine("Invalid input , Enter only number"); 
} 
1

あなたは「TryParse」Methodeの代わりに「解析」およびループ「ながら行う{...}」あなたは醜いコードを繰り返す必要はありませんので、使用を使用する必要があります。

注ユーザー入力を処理する文字列変数を追加しました。このコードでは、有効な数値が入力されるまで何度も何度も変換を要求します。それから、残りのコードを実行します。

class Program 
{ 
    static void Main(string[] args) 
    { 
     int n, sum; 
     string input; 
     sum = 5000; 

     do 
     { 
      Console.WriteLine("enter number of conversations"); 
      input = Console.ReadLine(); 
     } while (int.TryParse(input, out n) == false); 

     if (n <= 100) 
     { 
      sum = sum + n * 5; 
     } 
     else 
     { 
      sum += (100 * 5) + (n - 100) * 7; 
     } 
     Console.WriteLine(sum); 
     Console.ReadKey(); 
    } 
} 
関連する問題