簡體   English   中英

奇數或偶數的while循環

[英]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 時,余數將為01 這些是虛假/真實值。

while(0)計算結果為 false 並中斷循環。 while(1)計算結果為 true 並繼續循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM