-3

这似乎像无限循环一样执行。

a:
    echo "Statement 1 \n";
b:
    echo "Statement 2 \n";
if(1 > 2)
    goto a;
else
    goto b;

但这工作正常。

if(1 > 2)
    goto a;
else
    goto b;
a:
    echo "Statement 1 \n";
b:
    echo "Statement 2 \n";

有什么区别。我怎样才能像第一种情况一样再次执行一些代码块。示例

$b = 1;
$c = 2;
$a = $b+$c;

if($a > $ b)
  // here i want to cal $a = $b+$c; without using function or copy pasting the code.
4

2 回答 2

2

goto 将跳转到代码的那部分。所以在第一种情况下,你跳起来从 b: 重新开始,然后你一遍又一遍地这样做。但是在第二种情况下,您会跳下来。

于 2014-05-20T03:36:00.950 回答
2

这是一个无限循环,因为...您的代码是一个无限循环!

    a:
        echo "...";
.-- b: <------------.
|       echo "..."; |
|   if(1 > 2)       |
|       goto a;     |
|   else            |
`-----> goto b; ----´

它将输出:

Statement 1
Statement 2
Statement 2
Statement 2
Statement 2
[...]

代码的命名部分 (a:b:) 不会停止脚本;它们只是您可以跳转到的名称。如果到达,将始终执行指定的代码部分。

于 2014-05-20T04:19:03.443 回答