2016-05-29 13 views

Antwort

0

Bei der letzten Iteration, wenn sie mit $start = $start - $end; die $start Variable $find gleich wird, erhalten Sie sofort aus der Schleife bekommen (weil while ($start != $find);false ist In diesem Moment). Das bedeutet, dass

if ($start == $find): 
    echo "Found!"; 

nie auftreten wird. Wenn Sie das verstehen, dann verstehen Sie, dass außerhalb der Schleife $start == $find immer verifiziert ist. So können Sie dieses Stück Code am unteren Rand bewegen:

$start = 10; 
$end = 1; 
$find = rand(0,9); 

do { 
    if ($start != $find): // ALWAYS true, can be omitted 
     echo $start; 
     $start = $start - $end; 
    endif; 
} while ($start != $find); 

if ($start == $find): // ALWAYS true, can be omitted 
    echo "Found!"; 
endif; 
+0

Vielen Dank für Ihre Antwort. Ich denke, ich muss meine Frage bearbeiten ... – flux

0

Federico mir geholfen, die Fehler zu verstehen, so dass ich seine Antwort auswählt.

aber auch hier ist meine Antwort, erklärt, was ich erreichen wollte:

<?php 

$start = 0; 
$end = 1; 
$find = 1; 

do { 
    $find = rand($start,$end); 
    echo $find."<br>"; 
} while ($start != $find); 

if ($start == $find): 
    echo "Found!"; 
endif; 

?> 

so, ich bin der Planung hat die Zahl tatsächlich von einem _REQUEST genommen den Code der Arbeit mit einem Wert machen‘ t zufällig sein. Ich wollte nur verstehen, was falsch war und wie 'do while' funktioniert mit einer rand(); Funktion zuerst ...

Verwandte Themen