2016-05-05 1 views
-2

Ich arbeite gerade an einer Aufgabe. Die Schleife soll von der Variablen, die 1 ist, auf 10 zählen. Wenn die Schleife die Zahlen 3 und 7 erreicht, muss ich eine Aussage neben den Zahlen wiedergeben.Verwenden Sie eine if-Anweisung, um Text innerhalb einer While-Schleife zu echotieren

Hier ist mein Code:

<?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>"; 
    } 

?> 

Ich frage mich, wie ich in der Lage sein würde, den Echo-Ausgang neben die Aussage zu haben. Ich weiß nicht, warum meine if-Anweisungen momentan nicht funktionieren.

+3

Schauen Sie, wo Ihre While-Schleife ist und wo Ihre if-Anweisung steht. – Rizier123

+5

und anstelle von 'if ($ x = $ x + 6)' Ich denke, Sie wollen 'if ($ x == 7)' – Dale

+0

$ x wird "erreichen" unter If-else-Anweisungen einmal die 'while' Schleife beenden, Du musst sie also in die "While" -Schleife bewegen. und mit '=' Sie einen Wert zuweisen, nicht vergleichen. – mitkosoft

Antwort

1

Ihre if-Anweisungen befinden sich außerhalb Ihrer while-Schleife, $ x ist immer nur '10' (err 11), wenn Ihre Bedingungen erreicht sind.

Wenn Sie keine 'while' Schleife verwenden müssen, können Sie diesen Reiniger in einem für.

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) 
} 

Wenn Sie eine Weile für die Zuweisung Gründen verwenden müssen, bewegen Sie einfach die Klammer unmittelbar vor dem „wenn“ bis zum Ende des Skripts .. dh

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

Viel Glück!

-1

Ihre if Anweisungen sind außerhalb Ihrer while Schleife. Die {} stellen einen Codeblock dar, der basierend auf der Bedingung in der () Ihrer while Anweisung ausgeführt wird. Sie müssen sie also zwischen { und der Endung } setzen. Probieren Sie etwas wie folgt aus:

<?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>"; 
    } 
} 
?> 

oder in einem Schalter: (. Wenn Sie mehr als nur 3 und 7 zu handhaben wollen, wäre ein Schalter wahrscheinlich der sauberste Weg sein)

<?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. 

    } 
}  
?> 

Stellen Sie sicher, Verwenden Sie zwei Gleichheitszeichen, um Werte zu vergleichen, da ein einzelnes Gleichheitszeichen nur einen Wert der Variablen auf der linken Seite mit der Anweisung auf der rechten Seite zuweisen wird.

$x = 1; // Assignment. 

Im Vergleich zu

$x == 1; // Comparison. 

P. S. $x++ ist das gleiche wie $x = $x + 1, nur eine Kurzschreibweise. Wenn sich ++ vor der Variablen befindet (z. B. ++$x), wird der Wert erhöht, bevor die Anweisung ausgewertet wird. Wenn es danach ist (z. B. $x++), wird die Anweisung zuerst ausgewertet (z. B. $x <= 10), und danach wird der Wert inkrementiert.

Hoffe, das hilft.

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

dieses Versuchen

<?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 />"; 
} 

?> 

spielen, um mit for-Schleifen. Sie sind oft nützlich.

Verwandte Themen