【问题标题】:How Can I Fix the Following For-loop and If statement combination in PHP?如何修复 PHP 中的以下 For 循环和 If 语句组合?
【发布时间】:2016-03-15 10:43:24
【问题描述】:

编辑:已解决!感谢大家指出缺少的连接运算符和缺少的标点符号。

我刚刚被介绍到 PHP,并且正在尝试进行一个基本练习,我将 for 循环与几个 if/elseif 语句结合使用。

我的变量 A 和 B 在数学上是相关的,我需要输出来说明 B 的值以及一个简单的词(“好”、“坏”、“好”——取决于 B 的结果值)。我还希望循环的每个结果都打印在新行上。

我的尝试如下所示:

<?php

for ($A = 0; $A <= 100; $A++){
$B = (2/3) * ($A - 25); 

if ($B < 0 {
echo $B ", Bad <br>";}

elseif ($B > 45 {
echo $B ", Good <br>";}

else {
echo $B ", Okay <br>";}
}

endfor;
?>  

这只是我使用 PHP 的第二天(也是我大约七年来第一次编写任何类型的循环语句),所以如果我的错误很明显,我深表歉意。

我需要移动我对 $B 的定义吗?我是否需要以某种方式拆分此声明?问题是我的回声陈述吗?非常感谢任何提示或解释。谢谢!

【问题讨论】:

    标签: php if-statement for-loop


    【解决方案1】:

    您的代码中存在一些语法错误,在 PHP 中使用 . 进行连接

    控制结构detail link有两种语法,使用if( some condition ){ your code }if(some condition): "your code" endif;
    这是Difference between if () { } and if () : endif;

    <?php
    
    for ($A = 0; $A <= 100; $A++):
    $B = (2/3) * ($A - 25); 
    
        if($B < 0 ){
            echo $B .", Bad <br>";
        }else if ($B > 45) {
            echo $B .", Good <br>";
        }else{
            echo $B .", Okay <br>";
        }
    
    endfor;
    ?> 
    

    【讨论】:

      【解决方案2】:

      您的代码中有一些语法错误。您错过了) 以及连接运算符,即.

      if ($B < 0 {    //  if ($B < 0)  .... ")" is missing
          echo $B ", Bad <br>";}    //  echo $B .", Bad <br>";}  .... "." is missing
      

      这里是更正的代码:

      for ($A = 0; $A <= 100; $A++){
          $B = (2/3) * ($A - 25); 
      
          if ($B < 0) {
              echo $B . " Bad <br>";
          }
      
      elseif ($B > 45) {
      echo "Good <br>";}
      
      else {
      echo "Okay <br>";}
      }
      

      【讨论】:

        【解决方案3】:
        <?php
        
        for ($A = 0; $A <= 100; $A++) {
            $B = (2 / 3) * ($A - 25);
            if ($B < 0) {
                echo $B . " Bad <br>";
            } else if ($B > 45) {
                echo "Good <br>";
            } else {
                echo "Okay <br>";
            }
        }
        ?>  
        

        【讨论】:

          【解决方案4】:
          <?php
          
          for ($A = 0; $A <= 100; $A++){
          $B = (2/3) * ($A - 25); 
          
          if ($B < 0) {
          echo $B .", Bad <br>";
          }
          
          elseif ($B > 45) {
          echo $B ."Good <br>";
          }
          
             else {
             echo $B ."Okay <br>";
            }
          }
          ?>  
          

          试试这个代码。

          【讨论】:

            【解决方案5】:

            您在第一个 echo 语句中错过了 ifelseif 块的右括号 ) 和串联运算符 .echo 接受并输出一个字符串,因此您需要将多个字符串组合成一个字符串并要求echo 输出它。 endfor; 也不是必需的。

            <?php
            
            for ($A = 0; $A <= 100; $A++)
            { 
            $B = (2/3) * ($A - 25);
            if ($B < 0) 
            { 
            echo $B.", Bad <br>";
            }
            elseif ($B > 45 )
            {
             echo "Good <br>";
            }
            else 
            { 
            echo "Okay <br>";
            } 
            }
            ?>
            

            使用endfor;

            for ($A = 0; $A <= 100; $A++):
            $B = (2/3) * ($A - 25);
            if ($B < 0) 
            { 
            echo $B.", Bad <br>";
            }
            elseif ($B > 45 )
            {
             echo "Good <br>";
            }
            else 
            { 
            echo "Okay <br>";
            } 
            endfor;
            

            我已将 for 循环的开头 { 替换为 : 并将右大括号替换为 endfor;

            这就是它的工作原理。

            【讨论】:

            • echo $B ",坏
              "; // 错误
            猜你喜欢
            • 2017-08-06
            • 1970-01-01
            • 2019-05-02
            • 2019-01-21
            • 2013-02-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多