[英]Javascript - More than one condition
我刚开始学习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 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) {
您走在正确的道路上,确实有可能在另一个if statement
编写if statement
。 但是,您缺少括号,应该以不同的方式检查平等性。 我编辑了您的代码,因此可以解释:
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");
}
我主要在您的代码中更改了2件事。 首先是变化
if (checkBalance = true)
变成这个:
if (checkBalance)
编辑1:较短的if语句
您可以省略= true
部分,因为checkBalance
已经是一个布尔值。 这意味着它已经是true
或false
,它们是if statement
接受的值。 这使我进入了第二个编辑,这是最重要的一个。
编辑2:检查是否相等
在代码中,在if statements
使用= true
。 不幸的是,仅使用一个=
符号不是检查是否相等,而是要分配值。 当您分配诸如var a = 1;
类的值时,只能使用one =
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");
}
}
}
您已获得有关语法错误的良好答案。 关于“有没有更好的办法”,抽查的需要平等的true
和false
使用===
是没有必要的,因为真/假已经隐含了if
条件。 您可以单独将其用作变量。 另外,由于它是一个布尔值,只能为true或false,因此使用if
and then else
完全可以做到。 不需要, if
, else if
。
使用辅助函数来处理复杂的案例可以使代码更具可读性。
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.