-7

我有 2 个变量,其值为10.5。我总共有200,我想通过 2 个变量循环增加它们自己的值,然后在它们命中时停止200

这可以在一个for loop

我最初考虑使用 for 循环使用:

for($i=$var1;$i<=$total;$i++)
{

}

这适用于其中 1 个变量。

谢谢

4

3 回答 3

3

如果你仔细看看forloop,它支持这样的语法:

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);

所以你基本上可以这样做:

for( $i = 1, $j = 0.5; $i < 200; $i++, $j += 0.5){
    // Do stuff
}

虽然我认为这可能会让一些人感到困惑,但这样写会更具可读性:

$j = 0;
for( $i = 0; $i < 200; $i++){
    // do stuff

    $j += 0;
}

或者您也可以$j在每个步骤中计算:

$j = $i/2; // Before do stuff block

但我认为这会比仅仅增加它的性能更差;

于 2013-04-15T10:52:46.383 回答
1

他们是一些使用增量工作的已知问题float, 这里是一个显示受影响的实时示例Output for 4.3.10 - 4.4.9, 5.0.2 - 5.5.0beta2

您可以使用printf部分修复此问题或简单转换为整数然后返回浮动

$var = 0.5;
for($i = 0; $i < 200; $i += $var) {
     printf("%.1f\n", $i);
}
于 2013-04-15T10:59:00.443 回答
0

在编程中一切皆有可能

这样做 $i = 1;

for ($i=1;$<=200;$i++);

并为 $i = .5 执行此操作

for($i=.5; $i<=200;$i+.5);
于 2013-04-15T10:52:18.283 回答