2016-04-30 10 views
-2

prompt = nullまたは空の文字列 ""からの戻り値で停止するwhileループを作成しようとしています。whileループwhile条件:空の文字列を返すか、プロンプトからnullを返す

var inputName = prompt("Enter a name", ""); 
var namesArray = []; 

while (inputName != "" || inputName != null) { 
    inputName; 
    namesArray[namesArray.length] = inputName; 
} 

namesArray.sort(); 

var namesList = namesArray.join("<br/>"); 

document.write(namesList); 

答えて

1

あなたのループはおそらく間違った演算子を使用している間にあなたがループ内inputNameの値を変更することはありませんので(それはには確認します両方の条件が満たされている&&を使用する必要があります)やその他の問題は、あまりにもそこにあるかのように、あなたwhile()ループを入力した場合、永遠にループします。

ifの文をfalseyの値に変更することをお勧めします。これは自動的に両方の条件に合致します。そしてここで、一般的にクリーンな実装です:

var namesArray = [], inputName; 
while(true) { 
    inputName = prompt("Enter a name", ""); 
    if (!inputName) { 
     break; 
    } 
    namesArray.push(inputName); 
} 
namesArray.sort(); 
document.write(namesArray.join("<br/>")); 

構造if (!inputName)nullundefined""NaNfalseを含みinputNameのいずれかのfalsey値をテストします。あなたは特にnull""に興味があるので、より簡単にそれらをカバーします。 falseyの詳細については、this page on MDNを参照してください。

+0

promptを配置する必要があり、あなたと同じコードを使用して、おかげで、これはうまく動作します。はっきりとシンプル。 –

1

||の代わりに&&を使用する必要があります。それ以外の場合は、無限ループになります。do..whileを使用すると、最適なオプションになります。

var inputName; 
 
var namesArray = []; 
 

 
do { 
 
    inputName = prompt("Enter a name", ""); 
 
    if (inputName != "" && inputName != null) // check value is null or empty 
 
    namesArray.push(inputName); 
 
} while (inputName != "" && inputName != null); 
 

 
namesArray.sort(); 
 

 
var namesList = namesArray.join("<br/>"); 
 

 
document.write(namesList);


それとも、しばらく

var inputName = prompt("Enter a name", ""); 
 
var namesArray = []; 
 

 
while (inputName != "" && inputName != null) { 
 
    //     --^-- you need to use && here 
 
    namesArray.push(inputName); // push the value to array 
 
    inputName = prompt("Enter a name", ""); // prompt for new value 
 
} 
 

 
namesArray.sort(); 
 

 
var namesList = namesArray.join("<br/>"); 
 

 
document.write(namesList);

+0

これは、ループの最後に「ヌル」値を「プッシュ」することに注意してください。 – jfriend00

+0

@ jfriend00:ありがとう、更新済.... :) –

関連する問題