Выход из цикла for в Java

В моем коде есть цикл for, который перебирает метод кода до тех пор, пока не будет выполнено условие for.

Есть ли способ вырваться из этого цикла for?

Итак, если мы посмотрим на приведенный ниже код, что, если мы захотим выйти из этого цикла for, когда дойдем до «15»?

public class Test {

   public static void main(String args[]) {

      for(int x = 10; x < 20; x = x+1) {
         System.out.print("value of x : " + x );
         System.out.print("\n");
      }
   }
}

Outputs:

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

Я пробовал следующее безрезультатно:

public class Test {

   public static void main(String args[]) {
      boolean breakLoop = false;
      while (!breakLoop) {
          for(int x = 10; x < 20; x = x+1) {
             System.out.print("value of x : " + x );
             System.out.print("\n");
          if (x = 15) {
              breakLoop = true;
          }
          }
      }
   }
}

И я пробовал цикл:

public class Test {

   public static void main(String args[]) {
      breakLoop:
          for(int x = 10; x < 20; x = x+1) {
             System.out.print("value of x : " + x );
             System.out.print("\n");
             if (x = 15) {
                 break breakLoop;
             }
      }
   }
}

Единственный способ добиться того, чего я хочу, - это выйти из цикла for, я не могу заменить его на некоторое время, сделать, если и т. Д. Оператор.

Редактировать:

Это было предоставлено только в качестве примера, это не тот код, в который я пытаюсь его внедрить. Теперь я решил проблему, поместив несколько операторов IF после инициализации каждого цикла. Раньше он выскакивал только из одной части петли из-за отсутствия разрывов;


person silverzx    schedule 07.03.2013    source источник
comment
docs.oracle.com/javase/tutorial/java/nutsandbolts/branch. html   -  person Brian Roach    schedule 07.03.2013
comment
ваше требование неясно. когда вы хотите вырваться из петли?   -  person Sam I am says Reinstate Monica    schedule 07.03.2013
comment
Извините, я немного поторопился с примером. Теперь все отсортировано - это было связано с выходом из цикла, а затем с входом в другой. Требовалось несколько IF & BREAK!   -  person silverzx    schedule 07.03.2013
comment
Единственная проблема в ваших примерах заключается в том, что вы устанавливаете значение x вместо того, чтобы проверять его значение. Используйте x == 15, и ваши перерывы должны работать.   -  person ostergaard    schedule 06.10.2013


Ответы (4)


break; - это то, что вам нужно, чтобы выйти из любого оператора цикла, такого как for, while или do-while.

В вашем случае это будет так: -

for(int x = 10; x < 20; x++) {
         // The below condition can be present before or after your sysouts, depending on your needs.
         if(x == 15){
             break; // A unlabeled break is enough. You don't need a labeled break here.
         }
         System.out.print("value of x : " + x );
         System.out.print("\n");
}
person RainMaker    schedule 07.03.2013

Если по какой-то причине вы не хотите использовать инструкцию break (например, если вы думаете, что это нарушит ваш поток чтения в следующий раз, когда вы будете читать свою программу), вы можете попробовать следующее:

boolean test = true;
for (int i = 0; i < 1220 && test; i++) {
    System.out.println(i);
    if (i == 20) {
        test = false;
    }
 }

Второй аргумент цикла for — это логический тест. Если результат теста верен, цикл остановится. Вы можете использовать больше, чем просто математический тест, если хотите. В противном случае простой перерыв также поможет, как говорили другие:

for (int i = 0; i < 1220 ; i++) {
    System.out.println(i);
    if (i == 20) {
        break;
    }
 }
person user2145100    schedule 07.03.2013

Ты можешь использовать:

for (int x = 0; x < 10; x++) {
  if (x == 5) { // If x is 5, then break it.
    break;
  }
}
person JoaaoVerona    schedule 07.03.2013

Как насчет

for (int k = 0; k < 10; k = k + 2) {
    if (k == 2) {
        break;
    }

    System.out.println(k);
}

Другой способ — это помеченный цикл.

myloop:  for (int i=0; i < 5; i++) {

              for (int j=0; j < 5; j++) {

                if (i * j > 6) {
                  System.out.println("Breaking");
                  break myloop;
                }

                System.out.println(i + " " + j);
              }
          }

Для еще лучшего объяснения вы можете проверить здесь

person Hussain Akhtar Wahid 'Ghouri'    schedule 07.03.2013