Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中重新启动双循环的方法_Java_Loops_For Loop_Nested Loops - Fatal编程技术网

java中重新启动双循环的方法

java中重新启动双循环的方法,java,loops,for-loop,nested-loops,Java,Loops,For Loop,Nested Loops,我正在寻找在java中重新启动嵌套循环的方法 基本上我就是这么想的: for(int i = 0; i < value; i++) { for(int j = 0;j < value2;j++) { if(condition) { i=-1; break; } //some code here } } for(int i=0;i

我正在寻找在java中重新启动嵌套循环的方法 基本上我就是这么想的:

for(int i = 0; i < value; i++) {
  for(int j = 0;j < value2;j++) {
     if(condition) {
        i=-1;
        break;
     }
     //some code here
     }
    }
for(int i=0;i

但也许你可以提出更好的建议?

你可以使用循环标签

 OUTER: for(int i = 0; i < value; i++) {
          for(int j = 0;j < value2;j++) {
             if(condition) {
                continue OUTER;
              }
           //some code here
         }
       }
OUTER:for(int i=0;i
您可以使用循环标签

 OUTER: for(int i = 0; i < value; i++) {
          for(int j = 0;j < value2;j++) {
             if(condition) {
                continue OUTER;
              }
           //some code here
         }
       }
OUTER:for(int i=0;i
试试这个:

private void ExampleLoop(boolean isStarted)
{
    while(isStarted)
    {
        if(condition)
        {
            isStarted = false;
        }
    }
}
然后大体上:

MyClass myClass = new MyClass();
myClass.ExampleLoop(true);
//Or stop with:
myClass.ExampleLoop(false);
试试这个:

private void ExampleLoop(boolean isStarted)
{
    while(isStarted)
    {
        if(condition)
        {
            isStarted = false;
        }
    }
}
然后大体上:

MyClass myClass = new MyClass();
myClass.ExampleLoop(true);
//Or stop with:
myClass.ExampleLoop(false);
Lambda函数

class Ideone
{

    static Runnable r;
    static boolean brokeOnce = false;


    public static void main (String[] args)
    {
        r = () ->  { 
            firstloop: for (int i = 0; i <= 2; i++) {
              for (int j = 0; j <= 2; j++) {
                System.out.println(i + " " + j);
                if (!brokeOnce && i == 1 && j == 1) {
                    brokeOnce = true;
                    r.run();
                    break firstloop;
                }
              }
            }
        };

        r.run();
    }
}
类表意符
{
静态可运行r;
静态布尔值brokeOnce=false;
公共静态void main(字符串[]args)
{
r=()->{
firstloop:for(inti=0;iLambda函数

class Ideone
{

    static Runnable r;
    static boolean brokeOnce = false;


    public static void main (String[] args)
    {
        r = () ->  { 
            firstloop: for (int i = 0; i <= 2; i++) {
              for (int j = 0; j <= 2; j++) {
                System.out.println(i + " " + j);
                if (!brokeOnce && i == 1 && j == 1) {
                    brokeOnce = true;
                    r.run();
                    break firstloop;
                }
              }
            }
        };

        r.run();
    }
}
类表意符
{
静态可运行r;
静态布尔值brokeOnce=false;
公共静态void main(字符串[]args)
{
r=()->{

第一循环:用于(int i=0;我使用一个函数,重启次数可以任意选择。这看起来很简单。你可以使用一个标签,但这更复杂。使用一个函数,重启次数可以任意选择。这看起来很简单。你可以使用一个标签,但这更复杂。这不会重启循环,即使用
i==0
Add
i=-1
before
continue
将是正确的。这不会重新启动循环,即在
i==0
Add
i=-1
before
continue
将是正确的。太简单了。我认为我们需要更复杂的例子来使用
for()
。你是对的。我应该使用更多的接口和抽象类以及我自己的Runnable扩展。:)太简单了。我想我们需要更复杂的例子来使用
for()
。你是对的。我应该使用更多的接口和抽象类以及我自己的Runnable扩展。:)