1. Java / Говнокод #16599

    +144

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    public static void main(String[] args) {
        int temp = 0;
        out: // label
        for (int i = 0; i < 3; ++i) {
            System.out.println("I am here");
            for (int j = 0; j < 20; ++j) {
               if(temp==0) {
                   System.out.println("j: " + j);
                    if (j == 1) {
                        temp = j;
                        continue out; // goto label "out"
                    }
                }
            }
        }
        System.out.println("temp = " + temp);
    }

    Оригинал: http://stackoverflow.com/questions/2545103/is-there-a-goto-statement-in-java

    Помнится, кто-то недавно упомянул именнованные циклы.
    Вот они и нашлись.

    Получается, что по "continue out" мы пойдём на следующую итерацию внешнего цикла, а при "break out", выйдем из внешнего цикла.
    Странно, что M$ не утянули себе такую фичу...

    Запостил: TauSigma, 26 Августа 2014

    Комментарии (21) RSS

    • Где здесь ГК?

      Да, есть в Java (и JavaScript) такая фича. С самого рождения была. И что?
      Ответить
      • Я не знал, только занялся лизанием жабы.
        Ответить
        • И как, побочные эффекты уже наблюдаются?
          Ответить
          • Желание построить фабрику фабрик?
            Ответить
          • У лизания жабы нет побочных эффектов. Все эффекты ожидаемы
            Ответить
          • Пока, я опечален отсутствием в жабовском IDE оператора goto.
            Причём, в байт-коде goto есть, а в коде использовать нельзя.
            Как же теперь жить без jmp. :'(
            Ответить
            • Извращенец! Зачем тебе goto в жабе?!
              Ответить
              • это же непорядок! Жаба - и не прыгает!
                Ответить
                • Кто не скачет, тот Паскаль!

                  Стоп! Но даже в Паскале есть goto.
                  Ответить
                  • ладно в паскале в пхп тоже есть goto на кой оно там не пойму.
                    Ответить
                    • goto нужны не столько для людей, сколько для генерирования кода. В частности, конечных автоматов. Классический пример - генераторы лексеров и парсеров.
                      Ответить
                      • Конечный автомат и на одном свиче неплохо сгенерится. Не особо там goto нужно...
                        Ответить
                        • да и на шарпике кокошка goto не использует при генерации лексера-парсера
                          Ответить
                  • > Кто не скачет, тот Паскаль!
                    > Но даже в Паскале есть goto.
                    Паскакаль.
                    Ответить

    Добавить комментарий