2015-10-13 2 views
0

Мне нужно вычесть 10 из значения, пока оно не станет ниже десяти, а затем использовать его вне цикла, но значение, похоже, не изменится. Я не уверен, сколько ошибок я делаю, но я уверен, что это много!Для не меняющего значения цикла

$x = 1987; 
$y = 2015; 
$b = $y - $x; 
for($b; $b > 10; $b - 10){ 
    echo $b; //This is supposed to be echo:ed when the loop is done 
} 

Заранее благодарен!

ответ

3

Вы фактически не модифицируя $b:

$x = 1987; 
$y = 2015; 
$b = $y - $x; 
for($b; $b > 10; $b = $b - 10) { // <- this line 
    echo $b; 
} 

Кроме того, нет необходимости в начальной $b здесь:

for(; $b > 10; $b = $b - 10) { 

Или вы могли бы избавиться от:

$b = $y - $x; 

И просто используйте:

for($b = $y - $x; $b > 10; $b = $b - 10) { 
+2

Вы можете сократить, что '$ Ь - = 10' –

+0

вы также не нуждаетесь в первой части для ... – Random

+0

работали отлично! –

0
$x = 1987; 
$y = 2015; 
$b = $y - $x; 
for(; $b > 10; $b -= 10); 
echo $b; 

Эхо произойдет только после завершения цикла. Это уменьшит значение $b кратным 10. $b будет less than 10 после цикла.

0
$x = 1987; 
$y = 2015; 
$b = $y - $x; 
for($b; $b > 10; $b -= 10) { 
    echo $b; 
} 
1

Или вы могли бы просто сделать

$x = 1987; 
$y = 2015; 
$b = ($y - $x) % 10; 

который является в основном то, что вы делаете, только вы выбрали трудный путь с for петли :)

0

А в то время как цикл более читаемым чем цикл for. Кроме того, поместите инструкцию echo после завершения цикла.

$x = 1987; 
$y = 2015; 
$b = $y - $x; 
while($b > 10) { 
    $b -= 10; 
} 
echo $b; 
Смежные вопросы