這是一般結構:
if (condition) {
// do this if condition is true
} else {
// do this if condition is false
}
直接沒有條件else
因爲如果if
條件爲假,只有得到執行。或者,你可以這樣做:
if (condition) {
// do this if condition is true
} else if (condition) {
// do this if first condition is false and this condition is true
} else {
// do this if first and 2nd condition are both false
}
但即使你沒有這個(改變你的例子有點)
numberOfHoursWorked = parseFloat(numberOfHoursWorked);
basePayRate = parseFloat(basePayRate);
if (jobCategorySelectedIndex == 1) {
txtnumberOfHoursWorked = 50;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1;
hoursEligibleForBasePay = 40;
}
else if (jobCategorySelectedIndex == 1) {
txtnumberOfHoursWorked = 10;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1;
hoursEligibleForBasePay = 10;
}
這是沒有意義的,因爲這兩個條件都是一樣的東西。第一個會觸發,第二個不會觸發,否則兩者都不會觸發。
那麼你這個評論:
當我改變了第二個條件從別的如果,它仍然只是 顯示第二如果txtnumberOfHoursWorked = 10
好了的聲明,所以現在你有這個:
numberOfHoursWorked = parseFloat(numberOfHoursWorked);
basePayRate = parseFloat(basePayRate);
if (jobCategorySelectedIndex == 1) {
txtnumberOfHoursWorked = 50;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1;
hoursEligibleForBasePay = 40;
}
if (jobCategorySelectedIndex == 1) {
txtnumberOfHoursWorked = 10;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1;
hoursEligibleForBasePay = 10;
}
這兩個條件ns完全一樣,所以它們都被執行。你有相同的變量被分配,但有差異值。所以第二個代碼塊中的代碼將覆蓋第一個代碼塊。看看你的兩個條件:它們是一樣的。
我在想也許這就是你想要的,但我不確定爲什麼你要在代碼塊中爲jobCategorySelectedIndex
賦值。 ESP的第一個代碼塊,因爲它已經有了值1,爲了使條件爲真
numberOfHoursWorked = parseFloat(numberOfHoursWorked);
basePayRate = parseFloat(basePayRate);
if (jobCategorySelectedIndex == 1) {
txtnumberOfHoursWorked = 50;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1; // <-- this is unecessary
hoursEligibleForBasePay = 40;
} else { // <-- this gets executed if jobCategorySelectedIndex does not equal 1
txtnumberOfHoursWorked = 10;
hourlyPayRate = 20;
jobCategorySelectedIndex = 1; // <-- are you sure you want to do this??
hoursEligibleForBasePay = 10;
}
'else'沒有直接關聯的一個條件,因爲它如果有什麼被執行'if'條件爲假 –
非常感謝! :) – user3479736
當我從else更改第二個條件爲if時,它仍然只顯示第二個if語句的txtnumberOfHoursWorked = 10 :( – user3479736