2014-10-10 71 views
-1

我在這裏做得不對,返回值是不正確的,只是返回else部分..腓如果其他statment

我要檢查的輸入值大於或等於和更少或相等的條件秀下面,這是做它還是我做錯了正確的方式...

$tornadoball = 22; 
$tornadoVal = ""; 
$tornadoScore = ""; 

if ($tornadoball <= 20 && $tornadoball >= 29): { 
    $tornadoScore = 0.25; 
} 

elseif ($tornadoball <= 30 && $tornadoball >= 34): { 
    $tornadoScore = 0.50; 
} 

elseif ($tornadoball <= 35 && $tornadoball >= 39): { 
    $tornadoScore = 0.75; 
} 

elseif ($tornadoball >= 40): { 
    $tornadoScore = 1.00; 
} 

else: { 
    echo " Value"; 
} 

endif; 

$tornadoVal == floatval($tornadoScore); 

echo $tornadoVal; 
+2

「這是正確的方式」 - - 它是否按預期工作? – zerkms 2014-10-10 02:44:03

+0

丟失冒號字符(':')。你的條件應該看起來像是if(condition){statement} elseif(condition){statement}' – Phil 2014-10-10 02:44:22

+0

在php.ini中啓用error_reporting,然後修正語法。 – mario 2014-10-10 02:44:26

回答

3

也許你的意思是>= min<= max,(在中間人):

$tornadoball = 22; 
$tornadoScore = 0; 

if($tornadoball >= 20 && $tornadoball <= 29) { // if this number is in between 20 to 29 
    $tornadoScore = 0.25; 
} 
elseif($tornadoball >= 30 && $tornadoball <= 34) { // if this number is in between 30 to 34 
    $tornadoScore = 0.50; 
} 
elseif($tornadoball >= 35 && $tornadoball <= 39) { // if this number is in between 35 to 39 
    $tornadoScore = 0.75; 
} 
elseif($tornadoball >= 40) { // if this number is greater than 40 
    $tornadoScore = 1.00; 
} 
else { 
    echo 'did not meet any criteria'; 
} 

var_dump($tornadoScore); 
+0

爲什麼downvote? – Phil 2014-10-10 02:53:49

+0

@Phil因爲它不是用C寫的大概 – zerkms 2014-10-10 02:57:06

+0

嘿@Phill。我無意中對此投了贊成票。 (我已經把它拿走了)。也是零。大概意味着你有事實根據,可以說經驗證據表明事情是真實的。在這種情況下,你會認爲它被低估了,因爲它不是用C寫的。你沒有證據期望你的直覺。在這種情況下,使用正確的詞將是「假設」的一些推導 – 2014-10-10 02:58:14

1

你不需要寫:endif;

這應該工作:

<?php 
    $tornadoball = 22; 
    $tornadoVal = ""; 
    $tornadoScore = ""; 

    if ($tornadoball <= 20 && $tornadoball >= 29) 
    { 
     $tornadoScore = 0.25; 
    } 
    elseif ($tornadoball <= 30 && $tornadoball >= 34) 
    { 
     $tornadoScore = 0.50; 

    } 
    elseif ($tornadoball <= 35 && $tornadoball >= 39) 
    { 
     $tornadoScore = 0.75; 

    } 
    elseif ($tornadoball >= 40) 
    { 
     $tornadoScore = 1.00; 
    } 
    else 
    { 
     echo " Value"; 
    } 

    $tornadoVal == floatval($tornadoScore); 

    echo $tornadoVal; 

?> 
+1

建議一個新手省略'{'和'}是個壞主意 – zerkms 2014-10-10 02:45:56

1

改變這行代碼

if ($tornadoball <= 20 && $tornadoball >= 29): 

這一個

if ($tornadoball <= 20 && $tornadoball >= 29) 

取出結腸 並刪除

endif; 
1

試試這個,**閱讀答案屁股以及

二註釋你的大部分條件將永遠不會得到滿足。所以我改變了他們看看

<?php $tornadoball = 22; 
$tornadoVal = ""; 
$tornadoScore = ""; 
//Below if condition is wrong 
if ($tornadoball >= 20 && $tornadoball <= 29): { 
$tornadoScore = 0.25; 
} 

elseif ($tornadoball >= 30 && $tornadoball <= 34): { 
$tornadoScore = 0.50; 
} 

elseif ($tornadoball >= 35 && $tornadoball <= 39): { 
$tornadoScore = 0.75; 
} 

elseif ($tornadoball >= 40): { 
$tornadoScore = 1.00; 
} 

else: { 
echo " Value"; 
} 

endif; 

$tornadoVal = floatval($tornadoScore); 
//You got two equal, two equal are comparistion operator 
//use one equal. Thats assignment operator 

echo $tornadoVal; 
1

嗨,請與下面code..Is這就是你期待輸出檢查..

$tornadoball = 22; 
$tornadoVal = ""; 
$tornadoScore = ""; 

if (($tornadoball <= 20) || ($tornadoball >= 29)) 
{ 
    $tornadoScore = 0.25; 
} 

else if (($tornadoball <= 30) ||($tornadoball >= 34)) 
{ 
    $tornadoScore = 0.50; 
} 

else if (($tornadoball <= 35) || ($tornadoball >= 39)) 
{ 
    $tornadoScore = 0.75; 
} 

else if ($tornadoball >= 40) 
{ 
    $tornadoScore = 1.00; 
} 

else 
{ 
    $tornadoScore= " Value"; 
} 


$tornadoVal = floatval($tornadoScore); 

echo $tornadoScore; 
+0

對不起!沒有運氣,我想我的整個邏輯可能是錯誤的 – 2014-10-10 05:17:33

+0

你能說我什麼是你猜測的輸出值 – Choco 2014-10-10 05:42:34

1
<?php 

// initialization 
$tornadoball = 22; 
$tornadoVal = ""; 
$tornadoScore = ""; 

//Below if condition is wrong 
if ($tornadoball >= 20 && $tornadoball <= 29) { 
$tornadoScore = 0.25; 
} 

elseif ($tornadoball <= 30 && $tornadoball >= 34) { 
$tornadoScore = 0.50; 
} 

elseif ($tornadoball <= 35 && $tornadoball >= 39) { 
$tornadoScore = 0.75; 
} 

elseif ($tornadoball >= 40) { 
$tornadoScore = 1.00; 
} 
else { 
// do nothing 
} 

echo "Score Value = " . $tornadoScore; 

$tornadoVal = floatval($tornadoScore); 
//You got two equal, two equal are comparistion operator 
//use one equal. Thats assignment operator 

echo "<br>"; 
echo "Tornado Value = " . $tornadoVal; 
?>