0

私には2つの方法があります:

public void test() {
    for (int i = 0; i <= 10; i++) {
        a();
    }
}

public void a() {
    // ...
}

testメソッドが修正されたと仮定すると、それを変更することはできません。

aメソッド内の for ループを中断するにはどうすればよいですか?

4

2 に答える 2

3

未チェックの例外をスローできます。

別の解決策は、最初のメソッドを持つクラスをサブクラス化し、それを修正して、たとえば a() が true を返した場合に早期に停止できるようにすることです。

于 2012-11-05T09:29:17.157 に答える
0

例外をスローするか、単にbreak;. 例外をまったく処理する必要がないため、これは少し手間がかかります。
例:

public class Test
{

    public static void main(String[] args)
    {
        foo();
    }

    public static void foo()
    {
        int i = 0;

        for(i = 0; i <= 10; i++)
        {
            System.out.println("in loop: " + i);
            if(i == 5) break;
        }
        System.out.println("end value: " + i);
        System.out.flush();
    }
}

の最終値はi5 になります。

于 2012-11-05T09:59:07.973 に答える