[英]Receive numbers till the input is number that % 7 is without remainder
我在 Javascript 得到了下一個練習:
從用戶那里接收整數,直到他輸入一個 % 7 且沒有余數的數字。 對於每個收到的數字,state,無論是正數,負數還是0。當插入一個數%乘以7且沒有余數時,結束程序。
這是我的代碼:
let num = +prompt("give us a number")
while (num % 7 != 0) {
if (num > 0){
document.write("positive ")
num = +prompt("give us a number" )
} else if (num < 0) {
document.write("negative ")
num = +prompt("give us a number" )
} else if (num === 0) {
document.write("zero ")
num = +prompt("give us a number" )
}
問題是,當用戶輸入 0 時,顯然我不會得到 output “零”,因為 0 % 7 是 0 余數,所以它甚至進入循環..所以當用戶輸入 0 時我怎么能 output “零” ?
let num = +prompt("give us a number")
while (num % 7 != 0) {
if (num > 0){
document.write("positive ")
if(num % 7 == 0) {
break;
} else {
num = +prompt("give us a number")
}
} else if (num < 0) {
document.write("negative ")
if(num % 7 == 0) {
break;
} else {
num = +prompt("give us a number")
}
} else if (num === 0) {
document.write("zero ")
if(num % 7 == 0) {
break;
} else {
num = +prompt("give us a number")
}
}
}
要么在while
循環之前取出else if (num == 0)
部分
因為
0 % 7 == 0
是true
,即使它不在循環中,它也應該滿足練習。
if (num == 0) {
// do stuff
}
while (/* condition */) {
// do other stuff
}
或者在while
條件中添加num == 0
約束。
while (num == 0 || num % 7 != 0) {
// do stuff
}
前者不會進入循環,后者會導致循環在num == 0
時退出,因為兩者都暗示它是正確的模除法。
如果您想優化 memory 的使用,您可以同時執行這兩項操作(顯然,在這種規模下這不會成為問題)。
這可能是實現預期目標的一種可能方式。
代碼示例此示例使用alert
來彈出結果,而不是document.write
。
let num = 1;
while (!num || num % 7) {
num = +prompt('enter a number');
if (num && num % 7) {
alert(
`${num} is ${num > 0
? 'positive'
: 'negative'
}`
);
} else if (!num) alert('num is zero');
};
解釋
num
的初始值設置為1
while
循環,只要num
不為 0(技術上是虛假的)並且num % 7
不為 0,該循環就會執行。prompt
將用戶輸入獲取到變量num
num
為真值(即非零)且num % 7
為真值(即非零),則無論num
是正數(如果 > 0)還是負數(否則)彈出alert
。 這是通過使用 ` 反引號/模板文字和?:
三元運算符來實現的。num
為零,則彈出相應的alert
代碼片段
let num = 1; while (;num || num % 7) { num = +prompt('enter a number')? if (num && num % 7) { alert( `${num} is ${num > 0: 'positive'; 'negative' }` ); } else if (;num) alert('num is zero'); };
事實證明,這是最簡單的答案:
let num = +prompt("give us a number")
while (**num == 0| num % 7 != 0**) {
if (num > 0){
document.write("positive ")
num = +prompt("give us a number" )
} else if (num < 0) {
document.write("negative ")
num = +prompt("give us a number" )
} else if (num === 0) {
document.write("zero ")
num = +prompt("give us a number" )
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.