[英]While loop for odd or even
向用戶詢問號碼。 確定數字是偶數還是奇數。 我設置了常量並使用模數來解決這個問題。 但是,我陷入了無限循環,無法弄清楚原因。 我在循環中有 if 語句以及要退出的 break 語句,但仍處於無限循環中。
必須使用 while 循環
// declare constants const MODULO = 2; const EVEN = 0; const ODD = 1; // declare variables var enteredNumber; var result; // prompt user to enter an even number enteredNumber = prompt("Enter an even number: "); // convert user input into a number enteredNumber = Number(enteredNumber); // determine result of modulo equation result = enteredNumber % MODULO; // while loop to check if enteredNumber is even or odd while (result === EVEN) { document.write(enteredNumber + " is an even number <br/>"); enteredNumber = prompt("Enter an even number: "); enteredNumber = Number(enteredNumber); result = enteredNumber % MODULO; if (result === ODD) { document.write(enteredNumber + " isn't an even number"); break; } }
你基本上可以單行這件事。 你已經在用while
檢查東西了。
document.addEventListener('DOMContentLoaded', () => { while (!(parseInt(window.prompt('Enter an even number', '2') || '1', 10) % 2)) { }; });
為什么這有效
Javascript 有 'falsy' 和 'truthy' 值。
window.prompt('Enter an even number', '2')
此代碼提示用戶輸入一個數字。 結果是一個字符串(或 null,如果用戶將提示置為空白)。
<a string or null> || '1'
如果用戶取消提示,它將返回null
。 在 Javascript 中,我們可以使用or運算符在兩件事之間進行選擇。 null || '1'
null || '1'
從左到右讀取。 第一件事是假的,所以它選擇'1'
。
如果用戶輸入了一個數字(比如 10),我們會得到他們輸入的數字作為字符串。
然后我們使用parseInt
將字符串解析為一個數字。
獲取該結果並使用模運算符%
除以操作數並返回余數。 當您除以 2 時,余數將為0
或1
。 這些是虛假/真實值。
while(0)
計算結果為 false 並中斷循環。 while(1)
計算結果為 true 並繼續循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.