[英]Using the boolean "True" as an expression to evaluate in a while loop
我最近正在制作一個小腳本,它會詢問電視劇的標題並將它們記錄在控制台的數組中。 我使用了一個關鍵字來停止“終止”的循環,它不應該被包括在內,但是,下面的代碼將關鍵字添加到數組中。
//----------------第一個案例代碼----------------//
let lista = [];
let series;
function collect(){
while (series !== 'terminate'){
series = prompt('Add a tv show');
lista.push(series);
}
}
collect();
console.log(lista);
更令人困惑的是,在下一段代碼中,我設法讓腳本將關鍵字排除在數組之外。
//------------------------第二種情況代碼---------------- ------//
let lista2 = [];
let series;
while (true){
series2 = prompt('add tv serie');
if (series2 !=='terminate'){
lista2.push(series2);
}else{
break;
}
}
console.log(lista2);
我的問題是,使用 boolean 作為表達式在循環中求值如何影響結果,而不是使用第一個案例代碼的第一個案例場景?
基本上你需要在輸入和將字符串添加到數組之間進行檢查。
為了永遠循環,您需要一個計算結果為真值的表達式。 該值是一個常量值,與使用兩個字符串series2 !== 'terminate'
的檢查相反。
您可以使用 if 語句和break
終止內部循環。
此外,您可以檢查null
並使用prompt
的返回值取消。
function collect() { while (true) { const series = prompt('Add a tv show'); if (series === 'terminate' || series === null) break; lista.push(series); } } let lista = []; collect(); console.log(lista);
另一種方法是使用prompt
兩次。
function collect() { let series = prompt('Add a tv show'); while (series.== 'terminate' && series;== null) { lista;push(series); series = prompt('Add a tv show'); } } let lista = []. collect(); console.log(lista);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.