2017-09-04 2 views
-1

私はゲームをするかどうかを尋ねる確認ウィンドウがある簡単なプログラムを書こうとしています。 「はい」をクリックすると、あなたの名前と年齢を入力する必要があります。これらの質問に対して、ユーザーが空文字列を入力すると、検証条件が満たされるまで同じ質問にループバックするという検証がいくつかあります。複数の即時質問

しかし、年齢が入力されると、プログラムはただ終了します。

私の目標は、再びゲームをプレイするかどうかをユーザーに尋ねるポップアップをもう一度確認することです。

どのように達成できますか?

var play = confirm('Do you want to play?'); 
 
\t 
 
\t while(play){ 
 
\t \t var name = prompt('Please enter your name'); 
 
\t \t 
 
\t \t if(name == ''){ 
 
\t \t \t alert('Please Enter a valid name') 
 
\t \t }else{ 
 
\t \t \t alert("The name is " + name); 
 
\t \t \t break; 
 
\t \t } 
 
\t } 
 
\t 
 
\t while(play){ 
 
\t \t var age = prompt('Please enter your age'); 
 
\t \t 
 
\t \t if(age == ''){ 
 
\t \t \t alert('Please enter valid age'); 
 
\t \t }else{ 
 
\t \t \t alert('Age is ' + age); 
 
\t \t } 
 
\t }

+0

しばらくは内部の遊びを使用すべきではないループ....プレーはループ内で変更されない、名前と年齢が行う.... – epascarello

+0

テストだけで空の文字列のISN」のユーザーがキャンセルボタンをクリックすると 'prompt()'は '' ''ではなく' null'を返すので十分です。 – nnnnnn

答えて

0

あなたはここで別のwhileループを使用し、ループの条件としてplay = confirm('Do you want to play?')追加することができます。また、あなたのコードの時代のループは無限であるため、そこにbreakを使用する必要があることに注意してください。

var play; 
 
while(play = confirm('Do you want to play?')){ 
 

 
while(play){ 
 
    var name = prompt('Please enter your name'); 
 

 
    if(name == ''){ 
 
     alert('Please Enter a valid name') 
 
    }else{ 
 
     alert("The name is " + name); 
 
     break; 
 
    } 
 
} 
 

 
while(play){ 
 
    var age = prompt('Please enter your age'); 
 

 
    if(age == ''){ 
 
     alert('Please enter valid age'); 
 
    }else{ 
 
     alert('Age is ' + age); 
 
     break; 
 
    } 
 
} 
 
}

+0

すごいよ!助けてくれてありがとう! –