Java流程处理

编译报错,请问具体原因是什么?

 

public class Breaker
{
    static String o = "";
    public static void main(String[] args)
    {
        z:
            o = o + 2;
            for(int x = 3; x < 8; x++)
            {
                if(x == 4) 
                    break;
                if(x == 6) 
                    break z;
                o = o + x;
                
            }
            
            System.out.println(o);
    }
}

首先,我是冲着这个标题来的,以为是工作流之类的问题,结果不是,而且java的goto用法。就顺便回答一下吧。
goto作为java的保留字,用起来是有个前提的。“标号必须在循环语句的前面,相当于给这个循环起一个名字,但是标号和这个循环之间不能加任何语句。”
你这段代码改成下面的就没有问题了
[code="java"]
public class Breaker
{
static String o = "";
public static void main(String[] args)
{
o = o + 2;
z:
for(int x = 3; x < 8; x++)
{
if(x == 4)
break;
if(x == 6)
break z;
o = o + x;

        }

        System.out.println(o);
}

}
[/code]