2015-06-04 92 views
0

我在我的ifelse聲明中遇到了一個問題,它從不運行else聲明。爲什麼if語句不運行else語句?

輸入形式是HTML:

<input type="radio" name="marital_stat" id="single" value="single" />Single 
    <input type="radio" name="marital_stat" id="married" value="married" />Married 

    <input name="age" type="text" size="5" maxlength="3" placeholder="30" required/> 

    <input name="work" type="radio" id="employee" value="employee" />Employee 
    <input name="work" type="radio" id="own" value="own" /> 
    Own Business 
    <input name="work" type="radio" id="jobless" value="jobless" />Jobless 

    <input name="place" type="radio" id="urban" value="urban" />Urban 
    <input name="place" type="radio" id="rural" value="rural" />Rural</td> 

這裏是PHP代碼:

if ($marital_stat == 'married') 
{ 
    if ($age >= 18 || $age < 59) 
    { 
     if ($work == 'jobless') 
     { 
      if ($place == 'rural') { $loan_credibility == 5; } 
     } 
    } 
} 
else if ($marital_stat == 'single') 
{ 
    if ($age >= 18 || $age < 59) 
    { 
     if ($work == 'employee') 
     { 
      if ($place == 'rural') { $loan_credibility == 1; } 
     } 
    } 
} 

這裏將顯示一些輸出條件:

$A = 'positive'; 
$B = 'negative'; 

if ($loan_credibility == 5){ 
    echo $B ;} 
else{ 
    echo $A; 
} 
+1

if是什麼意思?猜測$ marital_stat既不結婚也不是單一的 - 同樣,這將有助於知道這是哪種語言。 –

+0

請提供一個完整的例子:http://stackoverflow.com/help/mcve – FPK

+0

hi @LorenzoBoccaccia,我已經添加了一些輸入代碼的if和語言,如果其他語言是在php語言。 –

回答

0

你有沒有else條款(使用else if時邏輯上是必要的)...

if (condition) { 
    code to be executed if condition is true; 
} elseif (condition) { 
    code to be executed if condition is true; 
} else { 
    code to be executed if condition is false; 
} 

執行下列操作(1號或2最有意義)的...

  1. 讓你else if到一個單獨的if
  2. 變化else ifelse
  3. 或者添加一個else子句

另外,作爲@Moha med Belal指出,當設置變量使用=而不是==時。

所以兩件事情來解決你的問題:1)if-else if-else邏輯和2)= VS == ...

if ($marital_stat == 'married') 
{ 
    if ($age >= 18 || $age < 59) 
    { 
     if ($work == 'jobless') 
     { 
      if ($place == 'rural') { $loan_credibility = 5; } 
     } 
    } 
} 

if ($marital_stat == 'single') 
{ 
    if ($age >= 18 || $age < 59) 
    { 
     if ($work == 'employee') 
     { 
      if ($place == 'rural') { $loan_credibility = 1; } 
     } 
    } 
} 
+0

我按照你的建議對代碼進行了加密,結果仍然是一樣的。但是目前它只顯示echo'$ A',這是正值。以前,它只顯示負面詞作爲結果。 –

+0

如果年齡> = 18 ||年齡<59永遠是真的。年齡3因爲3 <59和年齡105> = 18。你想要做的是檢查> = 18 * && *年齡<59. – Mike

+0

這有點誤導......如果沒有什麼應該做,除非$ marital_stat等於'已婚'或'單身',那麼實際上並不需要'else'。我的猜測是,無論何時提交有效數據,「$ marital_stat」都將是「已婚」或「單一」,在這種情況下,處理錯誤的「else」可能會有所幫助。 – grossvogel

2

當我看到你做$loan_credibility == 5;1; ==只用於平等聲明它檢查雙方是否相等,你必須使用=設置值,而不是==所以它會是$loan_credibility = 5;1;

+0

請不要忘記標記爲最佳答案,正確率爲 –

+0

我按照您的建議嘗試過,它改變了結果。但是當我嘗試點擊正面結果的輸入時,它會一直顯示負面結果。 –

+0

你確定if語句中正確的值產生$ loan_credibility的條件嗎? –