[英]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.