2013-07-19 55 views
1

我在LiveCycle中使用的javascript if else語句只讀最後一個else語句,不會讀取或識別前面的語句。如果你能看到我缺少的東西,請幫忙。下面是代碼:爲什麼JavaScript if else語句只註冊讀取last else語句?

if (annualUsage.rawValue < 1,000,000) 
{ 
this.rawValue = annualUsage.rawValue * 0.1; 
} 
else if (annualUsage.rawValue >= 1,000,000 && annualUsage.rawValue < 10,000,000) 
{ 
this.rawValue = annualUsage.rawValue * 0.2; 
} 
else (annualUsage.rawValue >= 10,000,000) 
{ 
this.rawValue = annualUsage.rawValue * 0.05; 
} 

回答

1
  1. 以逗號出你的號碼?因此,像

    if (annualUsage.rawValue < 1000000)

    等等

  2. 也是最後else語句沒有得到一個條件,因此您可以 要麼刪除的條件

    else{

    或轉它變成另外一條語句

    else if(annualUsage.rawValue >= 10000000){

+0

感謝,刪除逗號和解決{}上允許的第一個和最後一個發言的最後一條語句被認可,但是......第二中間聲明沒有被讀取? –

+0

您是否首先從一切中刪除了逗號?所以你所有的數字看起來像'1000000'? ...也嘗試做一個'console.log(annualUsage.rawValue)',看看結果是在螢火蟲 – Banning

+0

燁它不讀我的(annualUsage.rawValue> = 1000000 && annualUsage.rawValue <10000000)聲明..任何想法? –

0

您無意中誤用了逗號運算符。

a, b將執行ab並評估爲b

因此,您實際傳遞給if的值是000,這是虛假的。


此外,else後的括號表達式變爲陳述(通過ASI),它是else子句的主體。
{在啓動一個總是執行的正常代碼塊後。

0
  1. 從號碼刪除逗號:

    if (annualUsage.rawValue < 1000000) 
    

    否則它取值爲與comma operator的表達式。

  2. 即使最後的else需要更正。

    else if(annualUsage.rawValue >= 10000000)