2017-02-15 13 views
0

を使用してC#のプログラムを再起動するために、なぜ私の文字列再起動がが「NO」に関係なく、私はこの時点で入力した内容:シンプルなはい/いいえ、私は把握することはできませんがdo-whileループ

while (
    (restart != "YES") && (restart != "NO") 
) 

どんな助けでも大歓迎です。

do 
{ 
    //main part of program 
    Console.Write("Do you wish to calculate another? (YES/NO) "); 
    restart = Console.ReadLine(); 
    restart = qualified.ToUpper(); 
    while ((restart != "YES") && (restart != "NO")) //???? 
    { 
     Console.WriteLine("Error"); 
     Console.WriteLine("Do you wish to calculate another? (YES/NO) "); 
     restart = Console.ReadLine(); 
     restart = qualified.ToUpper(); 
    } 
} while (restart == "YES"); 
+2

あなたは、コンソール入力として再起動し、その後、あなたは... – stuartd

+0

'リスタート= qualified.ToUpper()いくつかの変数「資格」の大文字として設定しますか? –

+1

コードをデバッグします。値の変化を見てください。 'stuartd'が指摘するように、あなたはすぐにその入力を捨てます。あなたが一歩一歩進んだら、これを見つけたでしょう。 – Rob

答えて

1

次のコードを削除します。

restart = qualified.ToUpper(); 
+0

疲れたときのコーディングは良い考えではありません。誰もが迅速に対応してくれてありがとう。 –

+0

Np。だから投票してください – AHBagheri

2

qualified.ToUpper()はに割り当てられていない、とそう変わりません。そして、あなたのrestart変数は、ユーザーが入力したものに関係なく常に同じ値に割り当てられます。ちょうどそれを取り出して使用:; `

do 
{ 
    //main part of program 
    Console.Write("Do you wish to calculate another? (YES/NO) "); 
    restart = Console.ReadLine().ToUpper(); 
    while ((restart != "YES") && (restart != "NO")) //???? 
    { 
     Console.WriteLine("Error"); 
     Console.WriteLine("Do you wish to calculate another? (YES/NO) "); 
     restart = Console.ReadLine().ToUpper(); 
    } 
} while (restart == "YES"); 
関連する問題