Я вважаю за краще використовувати цикл while , але нульовий вираз дозволяє вам написати це:
for (;;) { thread.run(); }
Однак з нульовим твердженням напишемо це:
while(true);
{
thread.run();
}
Основна мета якої - витрачати час на поганого програміста з технічного обслуговування, який йде за вами, і цікавиться, чому нитка не працює. Заява повинна тривати деякий час. Самотній; є заявою. Отже, цей блок операторів насправді не є частиною циклу.
Це не означає, що немає хороших цілей. Вони просто рідкісні. Зазвичай вони виглядають так:
{
;
}
Тому що так виглядає, як ти маєш намір це зробити (навіть цього іноді недостатньо).
У зборі це нульове твердження називається NOP . У Python це називається перепусткою . У java (та інших дітях c) це крапка з комою, як ви сказали, або навіть стверджуєте, що це правда;
Я знаю кілька застосувань:
Семантичний .
Існує різниця між порожнім простором і відведенням нуля як відповідь. Це чітко говорить, ні, я не забув щось тут покласти. Це ніщо не означає нічого. Це явно нічого. Цей простір навмисно залишився порожнім. Ось так ми отримуємо Н / А для компіляції.
Нульова картина
Уявіть собі складну і дорогу машину світлової сигналізації, яка кілька разів підбирала кольорову лампочку з стрічки транспортера, вкручувала її в розетку, включала її, виймала та піднімала наступну. Ви могли контролювати, що ця річ сигналізує за кольором цибулин, які ви надягаєте на пояс. Чудово, тепер, коли він нарешті працює бездоганно, ваш начальник хоче, щоб ви створили спосіб контролювати час цих сигналів. Він хоче додати розрив між повідомленнями. Ви з жахом пам’ятаєте, що багато частин піклуються про час цих сигналів і який біль було синхронізувати їх. Як ви збираєтеся контролювати терміни, не затримуючи вас на роботі у вихідні? Ви подивитеся на відро з випаленими цибулинами і отримаєте, ну не буквально, яскраву ідею.
Іноді хочеться використовувати поліморфізм, щоб просто щось вимкнути, нічого не порушуючи.
Налагодження
Встановлюючи точку розриву, вам потрібно там бути місцем точки перерви. Тепер переконайтеся, що деякі налагоджувачі дозволять вам встановити його на закриваючу фігурну дужку, але якщо вони не гарно, що мова дозволяє вам змусити знайти місце, навіть якщо це місце нічого не робить.
Насправді не є предметом Java, але є також:
Бінарне обмацування
Інструкція NOP зі зборів дозволяє зіставити зі складеним бінарним виконуваним файлом. Але сучасні компілятори Java настільки оптимізують, що я не впевнений, що крапка з комою не йде просто. Але за старих часів ми також використовували ці порожні плями у виконуваному файлі, щоб контролювати моменти часу або дозволяти нам пізніше потрапити в гачок. Без НОП там би були фактичні вказівки, тому, якщо ви хочете зачепити його, вам доведеться скопіювати ці інструкції де-небудь ще, щоб звільнити місце для гака. Це добре працює на мові c, з якої Java отримує більшу частину свого синтаксису. Але я не думаю, що ця гачка на гаках трапляється багато на Java. Для цього ми використовуємо орієнтоване на аспекти програмування .