2013-09-22 4 views
-2

Только что начал учиться. Вот что у меня есть:Простой PHP для ошибки цикла

<?php 
$i = 0; 
$num = $i * 12; 

for ($i=0; $i<13; $i++) { 

echo($i." times 12 = ".$num."<br>"); 
} 

?> 

Результат должен быть:

1 times 12 = 12 

2 times 12 = 24 

3 times 12 = 36 

и т.д ...

Исход я на самом деле получаю:

1 times 12 = 0 

2 times 12 = 0 

3 times 12 = 0 

любые идеи ?

ответ

3

Это потому, что у вас есть это заявление перед для цикла:

$i = 0; $num = $i * 12; 

так всегда $num будет 0. Просто поместите его в для:

for ($i=1; $i<13; $i++) { 
    $num = $i*12; 
    echo($i." times 12 = ".$num."<br>"); 
} 

Вам не нужно объявить $ я переменных перед циклом. Эта переменная будет перезаписана. Существует простой тест:

$i = 5; 
for($i = 1; $i<10; $i++); 

echo $i; 

ВЫВОД:

10 
+0

Так что проблема с прицелом в основном **? ** Внешние 'i' и' i' in for loop разные **? ** Это так? –

+0

Оператор объявляет переменную $ i в начале. Он перезапишет предыдущую переменную $ i. –

0
<?php 
$i = 1; $num = 1; 

for ($i=1; $i<13; $i++) { 
$num = $i * 12; 

echo($i." times 12 = ".$num."<br>"); 
} 

?> 
1

Если вы хотите, чтобы результат вы должны поместить вычисление внутри цикла for и начать i с 1

<?php 
for ($i=1; $i<13; $i++) { 
    $num = $i * 12; 
    echo($i." times 12 = ".$num."<br>"); 
    } 

?> 
0

Something например

<?php 
$num = 12; 

for ($i=1; $i<13; $i++) { 

    echo("$i times 12 = ".$num*$i); 
    echo "<br>"; 
} 

?> 
0
<?php 
for ($i=0; $i<13; $i++) { 

    echo($i." times 12 = ".$i*12."<br>"); 
    } 

?> 
0

Line $num = $i * 12; сдвиг в петле

<?php 
$i = 0; 

for ($i=0; $i<13; $i++) { 

    $num = $i * 12; 

    echo($i." times 12 = ".$num."<br>"); 

} 

?> 
0

Ваш $ Num переменная только когда-либо увеличивает на $ я, когда его 0, попытайтесь поместить его в цикл, как это.

$i = 0; 


for ($i=0; $i<13; $i++) { 
    $num = $i * 12; 
    echo($i." times 12 = ".$num."<br>"); 
    } 
Смежные вопросы