Javascript-多个条件
我刚开始学习JS,我想问一个我无法完成的任务Javascript-多个条件,javascript,Javascript,我刚开始学习JS,我想问一个我无法完成的任务 var balance = 325.00; var checkBalance = true; var isActive = false; //The first question if (checkBalance = true) { // the second question if(isActive = false) { console.log("Your account is no lon
var balance = 325.00;
var checkBalance = true;
var isActive = false;
//The first question
if (checkBalance = true) {
// the second question
if(isActive = false) {
console.log("Your account is no longer active.");
} else if(isActive = true) {
if(balance > 0) {
console.log("Your balance is " + balance.tofix(2) +"$.");
} else if(balance = 0) {
console.log("Your Accunt is empty");
} else {
console.log("Your balance is negetive, please contant bank");
}
}
else {
console.log("Thank you. Have a nice day");
目标是编写一个ATM,为了做到这一点,我希望在同一时间编写多个条件(如代码中所示)
在javascript中,应使用===表示条件相等 您的代码:
if (checkBalance = true) {
正确答案是:
if (checkBalance === true) {
同样适用于
if(isActive = false) {
正确答案是:
if(isActive === false) {
=是赋值,==用于检查,更改为==,==用于检查等式和类型
if (checkBalance = true) {
关于语法错误,你已经得到了很好的回答。关于“是否有更好的方法”,不需要使用
===
对true
和false
进行相等性检查,因为在if
条件中已经暗示了true/false。您可以将其本身用作变量。此外,由于它是一个只能为真或假的布尔值,因此使用if
然后使用else
完全可以。如果和如果,则无需执行
使用helper函数来处理复杂的情况会使代码更具可读性
var balance = 325.00;
var checkBalance = true;
var isActive = false;
//The first question
if (checkBalance) {
// the second question
if(isActive) {
handleIsActive(balance);
} else {
console.log("Your account is no longer active.");
}
} else {
console.log("Thank you. Have a nice day");
}
function handleIsActive(balance) {
if(balance > 0) {
console.log("Your balance is " + balance.tofix(2) +"$.");
} else if(balance === 0) {
console.log("Your Accunt is empty");
} else {
console.log("Your balance is negetive, please contant bank");
}
return;
}
您的思路是正确的,确实可以在另一条语句中编写if语句。但是,您缺少了一个括号,您检查平等性的方式应该有所不同。我编辑了您的代码,以便解释:
var balance = 325.00;
var checkBalance = true;
var isActive = false;
//The first question
if (checkBalance) {
// the second question
if(isActive = false) {
console.log("Your account is no longer active.");
} else if(isActive) {
if(balance > 0) {
console.log("Your balance is " + balance.tofix(2) +"$.");
} else if(balance === 0) {
console.log("Your Accunt is empty");
} else {
console.log("Your balance is negetive, please contant bank");
}
}
else {
console.log("Thank you. Have a nice day");
}
我主要更改了代码中的两个内容。首先是变化
if (checkBalance = true)
为此:
if (checkBalance)
编辑1:较短的if语句
您可以省略=true
部分,因为checkBalance
已经是布尔值。这意味着它已经是true
或false
,这是if语句接受的值。这是我的第二次编辑,也是最重要的一次
编辑2:检查是否相等
在代码中,在if语句中使用=true
。不幸的是,只使用一个=
符号并不能检查是否相等,而是需要您指定值。当赋值如var a=1时,只能使用一个=
代码>。相反,您应该使用三首像==
这样的歌曲。这实际上检查了两件事。首先,它检查值的类型是否相同。然后,它检查这些值是否相等。您还可以使用两个像=
这样的=
符号,这将更松散地检查相等性,因为它不会检查类型是否相同。如其他答案所述,==
在这里更可取
我希望这能回答你的问题。如果没有,请在下面进行评论。第一个:
= : is assign
=== :is compare
还有一个错误是:
balance.tofix(2)
应该是:
balance.toFixed(2)
我刚刚编辑了您的代码,如下所示:
var balance = 325.00;
var checkBalance = true;
var isActive = false;
//The first question
if(!checkBalance) console.log("Thank you. Have a nice day");
else {
if(!isActive) console.log("Your account is no longer active.");
else{
if(balance > 0) {
console.log("Your balance is " + balance.toFixed(2) +"$.");
} else if(balance = 0) {
console.log("Your Accunt is empty");
} else {
console.log("Your balance is negetive, please contant bank");
}
}
}
=
是分配。为了测试相等性,请使用===
您的思路是正确的,我添加了一个答案,并做了一些解释。条件语句@ניר㜑ף中可能重复的=is assign===is compare请阅读。我不确定此代码是否正确。当帐户同时处于活动状态和未处于活动状态时,可以使用handleIsActive()
。另外,您还保留了if(balance=0)
,这是if语句中的赋值。@NocNit哎呀,肯定犯了这些错误。谢谢你把它们拿出来