为了账号安全,请及时绑定邮箱和手机立即绑定

If 语句在使用 0 时应该给出 int 和 alert

If 语句在使用 0 时应该给出 int 和 alert

慕标5832272 2021-12-23 10:24:34
对于初学者 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则执行。


查看完整回答
反对 回复 2021-12-23
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信