Важливо розуміти, що goto
конструкція є залишком від днів, коли програмісти запрограмовані на машинному коді та мові збірки. Оскільки ці мови є настільки базовими (як, наприклад, кожна інструкція виконує лише одне ), потік управління програмою виконується повністю з goto
операторами (але в мові збірки вони називаються вказівками щодо стрибка або гілки ).
Тепер, хоча мова С досить низького рівня, її можна вважати дуже складною мовою складання - кожен вислів і функція в С легко можна розділити на інструкції з мови монтажу. Хоча C не є основним мовою для програмування комп’ютерів у наш час, він все ще широко використовується у додатках низького рівня, таких як вбудовані системи. Оскільки функція C настільки віддзеркалює функцію мови складання, вона має сенс goto
лише включити її в C.
Зрозуміло, що Java - це еволюція C / C ++. Java має багато функцій від C, але абстрагує набагато більше деталей, а тому просто пишеться по-іншому. Java є дуже високим рівнем мови, тому просто не потрібно мати функції низького рівня, наприклад, goto
коли більш високі рівні конструюють, як функції, для кожної, і в той час як циклі виконують потік управління програмою. Уявіть, якби ви були в одній функції та робили goto
мітку для іншої функції. Що буде, коли інша функція повернеться? Ця думка абсурдна.
Це не обов'язково відповідає тому, чому Java включає goto
заяву, але вона не дозволить її складати, але важливо знати, чому goto
вона коли-небудь використовувалася, в додатках нижчого рівня, і чому це просто не має сенсу бути використовується на Java.