2014-10-10 74 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; 
?>