2016-10-06 4 views
0

ifの動作方法を試したかったので、このコードを自分で作成しました。私はintにランダムに問題がありました。ここで私のコードでやり直すには? C#Console

は私のコードです:

using System; 

namespace Bigger_Smaller_Equal 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      int min = 1; 
      int max = 100; 

      Random rnd = new Random(); 
      int gen = rnd.Next(min, max); 
      Console.WriteLine("My Number is : " + gen + "!"); 
      Console.WriteLine("Tell me your number:"); 
      string typ = Console.ReadLine(); 
      int num = int.Parse(typ); 
      if (num == gen) 
      { 
       Console.WriteLine(num + " is Equal to " + gen); 

      } 
      else if (num > gen) 
      { 
       Console.WriteLine(num + " Is Bigger than " + gen); 
      } 
      else if (num < gen) 
      { 
       Console.WriteLine(num + " Is Smaller than " + gen); 
      } 
      Console.WriteLine("Press Any Key to exit."); 
      Console.ReadLine(); 
     } 
    } 
} 

それは私が別の番号を入力することができますので、コンソールを停止させるには?

基本的には:

  1. 私はその大きな小さいか、私は、コンソールに数を閉じるのではなく、Enterキーを押した後、ランダムに
  2. を発生させた数に等しいが再度生成される場合、それは私に語った番号を書いて、私は新しい番号などを書くことができます。
+2

をそれを試してみること自由に感じ何が必要なの[ループ]である(https://msdn.microsoft.com/en-us/library/f0e10e56(V = VS.90).aspxの)。また、[this](http://stackoverflow.com/questions/1754282/how-to-loop-a-console-app)の質問もチェックしてください。 – bkaf

+0

悪い習慣だが:while(true){/ * yourcode * /} ' – fubo

+0

@fuboなぜそれは悪い習慣ですか? – FrankerZ

答えて

0

console.ReadLine()を使用してconsole.ReadKey()instedを使用できます。 console.ReadLine()は、入力された文字セットを待ちます。なぜなら、いずれかのキーを押した後にコンソールウィンドウが表示される理由です。

+0

これは質問に答えません。 OPは、コードを繰り返す方法を知りたがっていました。つまり、コードをループする方法です。 –

0

「do while」または「while」演算子を使用できます。while(true)を使用したくない場合は、このように使い分けてください。ユーザーが0または-1を入力すると、このシステムが停止する可能性があります。しばらく()それはあなたが無限ループを作成してしまう可能性があるので、より複雑なアプリケーションに推奨されていないが

bool repeat = true; 
    do 
{ 
    Console.WriteLine("Enter value "); 
    string typ = Console.ReadLine(); 
    int num = int.Parse(typ); 
    if (num!=0) 
     // bla bla bla. 
    else 
     repeat = false; 
}while (repeat); 
+0

なぜブール変数を導入するのですか?単に 'while(true){/ * code * /}'を実行し、 'break;'を使用してループを終了しますか? – FrankerZ

+0

どちらの答えも真ですが、私はwhile(真)を使うことはすべての解決法にとって正しい方法ではないと思います。別のメソッドではこのブールを使用できますが、別のスレッドでこれをチェックできますが、while(true)を使用するとこれに関する情報にアクセスすることはできません。 –

0

はここで、後藤を使用した例です。

static void Main(string[] args) 
    { 
     int min = 1; 
     int max = 100; 

     Random rnd = new Random(); 

    again: 
     int gen = rnd.Next(min, max); 
     Console.WriteLine("My Number is : " + gen + "!"); 
     Console.WriteLine("Tell me your number:"); 
     string typ = Console.ReadLine(); 
     int num = int.Parse(typ); 
     if (num == gen) 
     { 
      Console.WriteLine(num + " is Equal to " + gen); 

     } 
     else if (num > gen) 
     { 
      Console.WriteLine(num + " Is Bigger than " + gen); 
     } 
     else if (num < gen) 
     { 
      Console.WriteLine(num + " Is Smaller than " + gen); 
     } 
    repeat: 
     Console.WriteLine("Play again? (Y/N)"); 
     string ans = Console.ReadLine(); 
     switch (ans.ToUpper()) 
     { 
      case "Y": goto again; break; 
      case "N": break; //continue 
      default: goto repeat; break; 
     } 
    } 
+1

彼はちょうど初心者です。早くgotoを使うように教えてはいけません。 – Jonesopolis

関連する問題