-7

と の値を持つ 2 つの変数があり1ます0.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 に答える