Блок меток может использоваться без цикла?

Блок меток может использоваться без цикла? Какие-либо примеры?

5
задан Mateen Ulhaq 24 November 2011 в 06:28
поделиться

4 ответа

Если вам нужен нечитаемый код:

int i = 1;
int j = 1;
label: switch (i) {
case 1:
    switch (j) {
    case 1:
        break label;
    }
default:
    System.out.println("end");
}

Без break; напечатает «конец». разорвать этикетку; пропустить печать.

0
ответ дан 18 December 2019 в 06:22
поделиться
  public static void main(String[] args)
  {
    hello: break hello;
  }
4
ответ дан 18 December 2019 в 06:22
поделиться

Здесь пример использования меток и Операторы прерывания без цикла:

        block1: {
            if (a < 0) {
                break block1;
            }
            if (b < 0) {
                break block1;
            }
            return a + b;
        }
15
ответ дан 18 December 2019 в 06:22
поделиться

конечно:

private boolean isSafe(String data) {

    validation: {

        if (data.contains("voldemort")) {
            break validation;
        }
        if (data.contains("avada")) {
            break validation;
        }
        if (data.contains("kedavra")) {
            break validation;
        }
        return true;
    }
    return false;
}

@DragonBorn: это невозможно. Вы можете продолжить или разорвать метку только в пределах ее области действия, например:

    label1: for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            System.out.println(i + " " + j);
            if (i == j) {
                continue label1;
            }
        }
    }

производит:

0 0
1 0
1 1
2 0
2 1
2 2
3 0
3 1
3 2
3 3
2
ответ дан 18 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: