对于初学者 JS 作业,我需要将数字相互除以始终从最大的数字开始。所以我从来没有得到十进制数。但是当涉及到 0 的使用时,输出应该给出一个警告,指出不允许使用 0。所以我添加了第二个 if 语句if (nGetal2 == 0 || nGetal1 == 0){ sResultaat += " 0 niet toegelaten in deze uitvoering"; console.log(sResultaat);}但这使得输出再次给出十进制数。9 / 3 应该是 3,3 / 9 也应该是 3,因为每次除法都会选择最大的数。我想如果我使用 || 如果使用 0,我可以说 nGetal1 或 nGetal2 不应该做任何事情。<script>var eKnop = document.querySelector('#deKnop');eKnop.onclick = bereken;function bereken() { console.log('knop werkt')var eGetal1 = document.getElementById('getal1');var eGetal2 = document.getElementById('getal2');// de getallenvar nGetal1 = parseInt(eGetal1.value);var nGetal2 = parseInt(eGetal2.value);var sResultaat = "";if(nGetal1 > nGetal2) { sResultaat = nGetal1 / nGetal2;}if (nGetal2 == 0 || nGetal1 == 0){ sResultaat += " 0 not allowed";}else { sResultaat = nGetal2 / nGetal1;}console.log(sResultaat);}</script>https://stackoverflow.com/help/minimal-reproducible-example
1 回答
富国沪深
TA贡献1790条经验 获得超9个赞
你的if/else设置错误。
如果 ,则进行第一个除法nGetal1 > nGetal2。然后,你检查nGetal2 == 0 || nGetal1 == 0,如果这是假的,你去else和做师再次; 覆盖第一个除法结果。我相信你的意思是:
if (nGetal2 == 0 || nGetal1 == 0){
sResultaat += " 0 not allowed";
} else if (nGetal1 > nGetal2) { // Only attempt division if neither operand is 0
sResultaat = nGetal1 / nGetal2;
} else {
sResultaat = nGetal2 / nGetal1;
}
console.log(sResultaat);
如果任一操作数为 0,则跳过两个除法检查。如果它们不为 0,nGetal1 > nGetal2则进行检查。如果该检查为真,nGetal1 / nGetal2则执行。如果为假,nGetal2 / nGetal1则执行。
添加回答
举报
0/150
提交
取消