2017-06-12 5 views
0

私は祈りの時間のアプリケーションを作っていた、それは基本的なswitch文とクラスで構成されています。私はエラーだったデフォルトを作ったが、私はwhileステートメントがあるので、エラーはループし続けている。ループからのデフォルトを停止する

string input = Console.ReadLine(); 

while (true) 
{ 
    switch (input) 
    { 
     case "6/12/2017": 
     case "06/12/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:51 PM"); 
      Console.WriteLine("Asr - 4:53 PM");    
      Console.WriteLine("Maghrib - 8:27 PM"); 
      Console.WriteLine("Isha - 10:10 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/13/2017": 
     case "06/13/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:51 PM"); 
      Console.WriteLine("Asr - 4:54 PM"); 
      Console.WriteLine("Maghrib - 8:27 PM"); 
      Console.WriteLine("Isha - 10:10 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/14/2017": 
     case "06/14/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:51 PM"); 
      Console.WriteLine("Asr - 4:54 PM"); 
      Console.WriteLine("Maghrib - 8:28 PM"); 
      Console.WriteLine("Isha - 10:11 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/15/2017": 
     case "06/15/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:54 PM"); 
      Console.WriteLine("Maghrib - 8:28 PM"); 
      Console.WriteLine("Isha - 10:11 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/16/2017": 
     case "06/16/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:55 PM"); 
      Console.WriteLine("Maghrib - 8:28 PM"); 
      Console.WriteLine("Isha - 10:12 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/17/2017": 
     case "06/17/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:55 PM"); 
      Console.WriteLine("Maghrib - 8:29 PM"); 
      Console.WriteLine("Isha - 10:12 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/18/2017": 
     case "06/18/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:55 PM"); 
      Console.WriteLine("Maghrib - 8:29 PM"); 
      Console.WriteLine("Isha - 10:13 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/19/2017": 
     case "06/19/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:55 PM"); 
      Console.WriteLine("Maghrib - 8:29 PM"); 
      Console.WriteLine("Isha - 10:13 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/20/2017": 
     case "06/20/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:53 PM"); 
      Console.WriteLine("Asr - 4:55 PM"); 
      Console.WriteLine("Maghrib - 8:30 PM"); 
      Console.WriteLine("Isha - 10:13 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/21/2017": 
     case "06/21/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:53 PM"); 
      Console.WriteLine("Asr - 4:56 PM"); 
      Console.WriteLine("Maghrib - 8:30 PM"); 
      Console.WriteLine("Isha - 10:13 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/22/2017": 
     case "06/22/2017": 
      Console.WriteLine("Fajr - 3:33 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:53 PM"); 
      Console.WriteLine("Asr - 4:56 PM"); 
      Console.WriteLine("Maghrib - 8:30 PM"); 
      Console.WriteLine("Isha - 10:14 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/23/2017": 
     case "06/23/2017": 
      Console.WriteLine("Fajr - 3:33 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:53 PM"); 
      Console.WriteLine("Asr - 4:56 PM"); 
      Console.WriteLine("Maghrib - 8:30 PM"); 
      Console.WriteLine("Isha - 10:13 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/24/2017": 
     case "06/24/2017": 
      Console.WriteLine("Fajr - 3:33 AM"); 
      Console.WriteLine("Sunrise - 5:16 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:56 PM"); 
      Console.WriteLine("Maghrib - 8:30 PM"); 
      Console.WriteLine("Isha - 10:14 PM"); 
      Console.WriteLine(); 
      break; 

     default: 
      Console.WriteLine("Error - Please make sure you're input is similar to the example shown"); 
      break; 
    } 

} 
+0

'while(true)'の代わりに 'while(myBool)'を実行します。次に 'while 'の前に' bool myBool = true;'を定義します。 'default'の場合、' myBool = false; 'を設定します。今度は 'default'ケースが最初にヒットすると' while'ループは 'true'にならなくなり、終了します。 – sab669

+0

whileループをtrueに設定しているため、コードは実行され続けます。簡単な解決策が必要な場合は、 'true'をtrueに変更してから' false'に設定してください。 – NoReceipt4Panda

+1

入力を 'DateTime'に解析することをお勧めします。このようにswitch文を避け、より多くの日付を処理できるはずです。 – juharr

答えて

0
While (true) 

これは無限ループです。これを行うには、変数を使用する必要があります。

しかし、私はあなたのデフォルトのケースがヒットしている間にユーザーの入力を得たいと思う。

だからあなたのコードは次のようなものでなければなりません:switch文なので

default: 
    //... 
    return; 

:あなたは簡単にreturn文で休憩を置き換えることができ、あなたの例では

bool switchItWhenDone= true; 
while (switchItWhenDone) 
{ 
    string input = Console.ReadLine(); 
    switch (input) 
    { 
     case "6/12/2017": 
     case "06/12/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:51 PM"); 
      Console.WriteLine("Asr - 4:53 PM");    
      Console.WriteLine("Maghrib - 8:27 PM"); 
      Console.WriteLine("Isha - 10:10 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/13/2017": 
     case "06/13/2017": 
     Console.WriteLine("Fajr - 3:32 AM"); 
     Console.WriteLine("Sunrise - 5:14 AM"); 
     Console.WriteLine("Dhuhr - 12:51 PM"); 
     Console.WriteLine("Asr - 4:54 PM"); 
     Console.WriteLine("Maghrib - 8:27 PM"); 
     Console.WriteLine("Isha - 10:10 PM"); 
     Console.WriteLine(); 
     break; 

    case "6/14/2017": 
    case "06/14/2017": 
     Console.WriteLine("Fajr - 3:32 AM"); 
     Console.WriteLine("Sunrise - 5:14 AM"); 
     Console.WriteLine("Dhuhr - 12:51 PM"); 
     Console.WriteLine("Asr - 4:54 PM"); 
     Console.WriteLine("Maghrib - 8:28 PM"); 
     Console.WriteLine("Isha - 10:11 PM"); 
     Console.WriteLine(); 
     break; 

    case "6/15/2017": 
    case "06/15/2017": 
     Console.WriteLine("Fajr - 3:32 AM"); 
     Console.WriteLine("Sunrise - 5:14 AM"); 
     Console.WriteLine("Dhuhr - 12:52 PM"); 
     Console.WriteLine("Asr - 4:54 PM"); 
     Console.WriteLine("Maghrib - 8:28 PM"); 
     Console.WriteLine("Isha - 10:11 PM"); 
     Console.WriteLine(); 
     break; 

    case "6/16/2017": 
    case "06/16/2017": 
     Console.WriteLine("Fajr - 3:32 AM"); 
     Console.WriteLine("Sunrise - 5:14 AM"); 
     Console.WriteLine("Dhuhr - 12:52 PM"); 
     Console.WriteLine("Asr - 4:55 PM"); 
     Console.WriteLine("Maghrib - 8:28 PM"); 
     Console.WriteLine("Isha - 10:12 PM"); 
     Console.WriteLine(); 
     break; 

    case "6/17/2017": 
    case "06/17/2017": 
     Console.WriteLine("Fajr - 3:32 AM"); 
     Console.WriteLine("Sunrise - 5:14 AM"); 
     Console.WriteLine("Dhuhr - 12:52 PM"); 
     Console.WriteLine("Asr - 4:55 PM"); 
     Console.WriteLine("Maghrib - 8:29 PM"); 
     Console.WriteLine("Isha - 10:12 PM"); 
     Console.WriteLine(); 
     break; 

    case "6/18/2017": 
    case "06/18/2017": 
     Console.WriteLine("Fajr - 3:32 AM"); 
     Console.WriteLine("Sunrise - 5:15 AM"); 
     Console.WriteLine("Dhuhr - 12:52 PM"); 
     Console.WriteLine("Asr - 4:55 PM"); 
     Console.WriteLine("Maghrib - 8:29 PM"); 
     Console.WriteLine("Isha - 10:13 PM"); 
     Console.WriteLine(); 
     break; 

    case "6/19/2017": 
    case "06/19/2017": 
     Console.WriteLine("Fajr - 3:32 AM"); 
     Console.WriteLine("Sunrise - 5:15 AM"); 
     Console.WriteLine("Dhuhr - 12:52 PM"); 
     Console.WriteLine("Asr - 4:55 PM"); 
     Console.WriteLine("Maghrib - 8:29 PM"); 
     Console.WriteLine("Isha - 10:13 PM"); 
     Console.WriteLine(); 
     break; 

    case "6/20/2017": 
    case "06/20/2017": 
     Console.WriteLine("Fajr - 3:32 AM"); 
     Console.WriteLine("Sunrise - 5:15 AM"); 
     Console.WriteLine("Dhuhr - 12:53 PM"); 
     Console.WriteLine("Asr - 4:55 PM"); 
     Console.WriteLine("Maghrib - 8:30 PM"); 
     Console.WriteLine("Isha - 10:13 PM"); 
     Console.WriteLine(); 
     break; 

    case "6/21/2017": 
    case "06/21/2017": 
     Console.WriteLine("Fajr - 3:32 AM"); 
     Console.WriteLine("Sunrise - 5:15 AM"); 
     Console.WriteLine("Dhuhr - 12:53 PM"); 
     Console.WriteLine("Asr - 4:56 PM"); 
     Console.WriteLine("Maghrib - 8:30 PM"); 
     Console.WriteLine("Isha - 10:13 PM"); 
     Console.WriteLine(); 
     break; 

    case "6/22/2017": 
    case "06/22/2017": 
     Console.WriteLine("Fajr - 3:33 AM"); 
     Console.WriteLine("Sunrise - 5:15 AM"); 
     Console.WriteLine("Dhuhr - 12:53 PM"); 
     Console.WriteLine("Asr - 4:56 PM"); 
     Console.WriteLine("Maghrib - 8:30 PM"); 
     Console.WriteLine("Isha - 10:14 PM"); 
     Console.WriteLine(); 
     break; 

    case "6/23/2017": 
    case "06/23/2017": 
     Console.WriteLine("Fajr - 3:33 AM"); 
     Console.WriteLine("Sunrise - 5:15 AM"); 
     Console.WriteLine("Dhuhr - 12:53 PM"); 
     Console.WriteLine("Asr - 4:56 PM"); 
     Console.WriteLine("Maghrib - 8:30 PM"); 
     Console.WriteLine("Isha - 10:13 PM"); 
     Console.WriteLine(); 
     break; 

    case "6/24/2017": 
    case "06/24/2017": 
     Console.WriteLine("Fajr - 3:33 AM"); 
     Console.WriteLine("Sunrise - 5:16 AM"); 
     Console.WriteLine("Dhuhr - 12:52 PM"); 
     Console.WriteLine("Asr - 4:56 PM"); 
     Console.WriteLine("Maghrib - 8:30 PM"); 
     Console.WriteLine("Isha - 10:14 PM"); 
     Console.WriteLine(); 
     break; 

    default: 
     Console.WriteLine("Error - Please make sure you're input is similar to the example shown"); 
switchItWhenDone=false; 
     break; 
} 

}

+0

一度デフォルトのケースが実行され、他のケースが実行された後で実行される場合、何が実行されますか? –

+0

私は彼がデフォルトのケースに当たったときにループを止めたいと思っています。 –

2

デフォルトの状態が入力されたら、あなたはtrueにboolを設定することができます - 私は、デフォルトでループの権利を停止することができますどのように、私はループにしたいswitch文は以下の私のコードです。

例:

私はあなたが正しくwhileループの中に、このライン

string input = Console.ReadLine(); 

を挿入したい理解していれば

bool end = false; 
while (!end) 
{ 
    switch (input) 
    { 
     // Your switch code 

     default: 
      end= true; 
      Console.WriteLine("Error - Please make sure you're input is similar to the example shown"); 
      break; 

    } 
} 
2

、そのようにループは、それがユーザーに選択肢を与える起動するたび新しい入力を挿入します。

+0

今、私の答えをこれと組み合わせるだけでいいですよ! –

1

あなたのメソッドの最後のものです。そうでなければ私はあなたが再びreturn文を使用することができます別の方法、内部のループを入れたい:

while (true) 
{ 
    switch (input) 
    { 
     //... 
     default: 
      return; 
//... 

それ以外の場合は二つの異なる、私の意見ではないこと推奨解決策があります:

1. aは、ラベルを付ける

しかし、誰もこれを行うことを提案しません。それは次のようになります。

while (true) 
{ 
    switch (input) 
    { 
     //... 
     default: 
      //... 
      goto after; 
    } 
} 
after: 
; //The semicolon is only needed when the label would be the last statement in the method otherwise, as it is in your example 

2.使用して、あなたは条件付きループを使用して無限ループを置き換えることができ

変数:

var finished = false; 
while (!finished) 
{ 
    switch (input) 
    { 
     //... 
     default: 
      //... 
      finished = true; 
      break; 
    } 
} 

これはその中のかなりすてきなソリューションですケースも同様です。

ところで、あなたのコードには別の問題があります。おそらく、あなたのwhileループに入力割り当てを入れたいからです。合計で、私は次のようなことを示唆しています:

var input = Console.ReadLine(); 

while (true) 
{ 
    input = Console.ReadLine(); 
    switch (input) 
    { 
     case "6/12/2017": 
     case "06/12/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:51 PM"); 
      Console.WriteLine("Asr - 4:53 PM"); 
      Console.WriteLine("Maghrib - 8:27 PM"); 
      Console.WriteLine("Isha - 10:10 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/13/2017": 
     case "06/13/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:51 PM"); 
      Console.WriteLine("Asr - 4:54 PM"); 
      Console.WriteLine("Maghrib - 8:27 PM"); 
      Console.WriteLine("Isha - 10:10 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/14/2017": 
     case "06/14/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:51 PM"); 
      Console.WriteLine("Asr - 4:54 PM"); 
      Console.WriteLine("Maghrib - 8:28 PM"); 
      Console.WriteLine("Isha - 10:11 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/15/2017": 
     case "06/15/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:54 PM"); 
      Console.WriteLine("Maghrib - 8:28 PM"); 
      Console.WriteLine("Isha - 10:11 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/16/2017": 
     case "06/16/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:55 PM"); 
      Console.WriteLine("Maghrib - 8:28 PM"); 
      Console.WriteLine("Isha - 10:12 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/17/2017": 
     case "06/17/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:14 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:55 PM"); 
      Console.WriteLine("Maghrib - 8:29 PM"); 
      Console.WriteLine("Isha - 10:12 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/18/2017": 
     case "06/18/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:55 PM"); 
      Console.WriteLine("Maghrib - 8:29 PM"); 
      Console.WriteLine("Isha - 10:13 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/19/2017": 
     case "06/19/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:55 PM"); 
      Console.WriteLine("Maghrib - 8:29 PM"); 
      Console.WriteLine("Isha - 10:13 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/20/2017": 
     case "06/20/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:53 PM"); 
      Console.WriteLine("Asr - 4:55 PM"); 
      Console.WriteLine("Maghrib - 8:30 PM"); 
      Console.WriteLine("Isha - 10:13 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/21/2017": 
     case "06/21/2017": 
      Console.WriteLine("Fajr - 3:32 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:53 PM"); 
      Console.WriteLine("Asr - 4:56 PM"); 
      Console.WriteLine("Maghrib - 8:30 PM"); 
      Console.WriteLine("Isha - 10:13 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/22/2017": 
     case "06/22/2017": 
      Console.WriteLine("Fajr - 3:33 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:53 PM"); 
      Console.WriteLine("Asr - 4:56 PM"); 
      Console.WriteLine("Maghrib - 8:30 PM"); 
      Console.WriteLine("Isha - 10:14 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/23/2017": 
     case "06/23/2017": 
      Console.WriteLine("Fajr - 3:33 AM"); 
      Console.WriteLine("Sunrise - 5:15 AM"); 
      Console.WriteLine("Dhuhr - 12:53 PM"); 
      Console.WriteLine("Asr - 4:56 PM"); 
      Console.WriteLine("Maghrib - 8:30 PM"); 
      Console.WriteLine("Isha - 10:13 PM"); 
      Console.WriteLine(); 
      break; 

     case "6/24/2017": 
     case "06/24/2017": 
      Console.WriteLine("Fajr - 3:33 AM"); 
      Console.WriteLine("Sunrise - 5:16 AM"); 
      Console.WriteLine("Dhuhr - 12:52 PM"); 
      Console.WriteLine("Asr - 4:56 PM"); 
      Console.WriteLine("Maghrib - 8:30 PM"); 
      Console.WriteLine("Isha - 10:14 PM"); 
      Console.WriteLine(); 
      break; 

     default: 
      Console.WriteLine("Error - Please make sure you're input is similar to the example shown"); 
      return; 
    } 

} 
+0

良い説明+1。 :) –

関連する問題