猿问

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

对于初学者 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 getallen


var 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


慕标5832272
浏览 126回答 1
1回答

富国沪深

你的if/else设置错误。如果 ,则进行第一个除法nGetal1 > nGetal2。然后,你检查nGetal2 == 0 || nGetal1 == 0,如果这是假的,你去else和做师再次; 覆盖第一个除法结果。我相信你的意思是:if (nGetal2 == 0 || nGetal1 == 0){&nbsp; &nbsp; sResultaat += " 0 not allowed";} else if (nGetal1 > nGetal2) {&nbsp; // Only attempt division if neither operand is 0&nbsp; &nbsp; sResultaat = nGetal1 / nGetal2;} else {&nbsp;&nbsp; &nbsp; sResultaat = nGetal2 / nGetal1;}console.log(sResultaat);如果任一操作数为 0,则跳过两个除法检查。如果它们不为 0,nGetal1 > nGetal2则进行检查。如果该检查为真,nGetal1 / nGetal2则执行。如果为假,nGetal2 / nGetal1则执行。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答