2016-05-05 65 views
-2

我正在處理一項任務。循環應該從變量1開始計數到10.當循環達到數字3和7時,我需要在數字旁邊回顯一個語句。使用if語句在while循環中回顯文本

這裏是我的代碼:

<?php 

    $x = 1; 
    while($x <= 10) { 
     echo "The number is " . $x . "<br />"; 
     $x = $x + 1; // increment by 1 … same as $x++; 
    } 


    if ($x = $x + 2) { 
     echo "<font color='green'>Third time is a charm</font>"; 
     // echo "<p>Third time is a charm</p>"; 
    } else if ($x = $x + 6) { 
     echo "<br>"; 
     echo "<font color='blue'>You got 7! JACKPOT!</font>"; 
    } 

?> 

我不知道我怎麼會能有旁聲明回聲輸出。我不知道爲什麼我的if語句目前沒有正在工作?

+3

查看while循環體的位置以及if語句的放置位置。 – Rizier123

+5

而不是'if'($ x = $ x + 6)'我想你想'if($ x == 7)' – Dale

+0

$ x將在'while'循環完成後,所以你必須在'while'循環內移動它們。並用'='分配一個值,而不是比較。 – mitkosoft

回答

1

您的if語句不在您的while循環中,$ x在到達您的條件時只有'10'(錯誤11)。

如果你不必使用'while'循環,你可以在for中實現這個清理器。

for ($i=0; $i<=10; $i++) { 
    //conditionals (I would elaborate, but learning by trial and error is great, don't want to rob you of that) 
} 

如果您需要使用而分配的原因,只是立即「如果」你的腳本..也就是年底前移動支架,

while { 
if() { 
} elseif() { 
} 
} 

祝你好運!

-1

您的if聲明在您的while循環之外。 {}代表根據您的while聲明的()中的條件運行的代碼塊,因此您需要將它們放在{和結尾}之間。嘗試是這樣的:

<?php 
$x=0; 

// You can add the increment modifier inside the 
// condition too, which will save you a line of code. (Just a shortcut) 
while (++$x <= 10) { 
    echo "The number is " . $x . "<br />"; 

    if ($x == 3) { 
     echo "<font color='green'>Third time is a charm</font>"; 
     // echo "<p>Third time is a charm</p>"; 
    } else if ($x == 7) { 
     echo "<br>"; 
     echo "<font color='blue'>You got 7! JACKPOT!</font>"; 
    } 
} 
?> 

或交換機(如果你要處理的不僅僅是3和7個,開關可能會是最乾淨的方式)

<?php 
$x=0; 

// You can add the increment modifier inside the 
// condition too, which will save you a line of code. (Just a shortcut) 
while (++$x <= 10) { 
    echo "The number is " . $x . "<br />"; 

    switch ($x) { 
     case 3: 
      echo "<font color='green'>Third time is a charm</font>"; 
      // echo "<p>Third time is a charm</p>"; 
      break; 
     case 7: 
      echo "<br>"; 
      echo "<font color='blue'>You got 7! JACKPOT!</font>"; 
      break; 
     default: 
      // The default logic goes here. 

    } 
}  
?> 

確保你使用兩個等號來比較值,因爲單個等號只會向左側的變量賦值,右側的語句會被賦值。

$x = 1; // Assignment. 

相比

$x == 1; // Comparison. 

附: $x++$x = $x + 1相同,只是簡寫的寫法。如果++位於變量之前(例如++$x),則會在計算語句之前增加該值。如果在之後(例如$x++),則首先評估該語句(例如$x <= 10),然後該值將在之後遞增。

希望這會有所幫助。

0
<?php 

    $x = 1; 
    while($x <= 10) { 
     echo "The number is " . $x . "<br />"; 

     if ($x == 3) { 
      echo "<font color='green'>Third time is a charm</font>"; 
      // echo "<p>Third time is a charm</p>"; 
     } else if ($x == 7) { 
      echo "<br>"; 
      echo "<font color='blue'>You got 7! JACKPOT!</font>"; 
     } 

     $x = $x + 1; // increment by 1 … same as $x++; 
    } 

?> 
0

各地試試這個

<?php 

// $i = 1  : start the counter at 1 
// $i <= 10 : execute until 10 is reached 
// $i++  : increment counter by one 
for($i = 1; $i <= 10; $i++) { 

echo "The number is " . $i; 

    if($i == 3) { 
    echo "<font color='green'> Third time is a charm</font>"; 
    } elseif($i == 7) { 
    echo "<font color='blue'> You got 7! JACKPOT!</font>"; 
    } 
    echo "<br />"; 
} 

?> 

播放與循環。他們經常派上用場。