Можно ли использовать блок LABEL без цикла? Любые примеры?Можно ли использовать блок LABEL без цикла?
ответ
public static void main(String[] args)
{
hello: break hello;
}
Here является примером использования меток и разорвать заявления без цикла:
block1: {
if (a < 0) {
break block1;
}
if (b < 0) {
break block1;
}
return a + b;
}
Если вы хотите какой-то нечитаемый код:
int i = 1;
int j = 1;
label: switch (i) {
case 1:
switch (j) {
case 1:
break label;
}
default:
System.out.println("end");
}
Без break;
напечатает "конец". break label;
пропустит печать.
, конечно:
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
Как насчет использования LABEL wihout, находящегося в определенной ЭТИКЕТКЕ.Например, если (i == 0) { Продолжить label1; } еще { // сделать что-то } label1: { // сделать что-то } – DragonBorn
Но зачем использовать метку на блоке кода?
Мое приложение обычно является коммутатором на переменную String (или что-либо иное, кроме char, byte, short, int, Enum).
"Для того, чтобы сделать омлет, нужно разбить несколько яиц"
Пример:
String key = "scrambled";
eggs: {
if ("do-nothing".equals(key)) break eggs;
if ("scrambled".equals(key)) {
;//scramble code here
break eggs;
}
if ("fried".equals(key)) {
;//fry code here
break eggs;
}
//default behaviour goes here
//or maybe throw an exception
}
Хорошо, хорошо, «Иногда, чтобы сделать омлет, вы должны убить несколько человек "
Альтернативы:
- Java 7 позволяет использовать String в качестве переключателя.
- Обходное решение Enum с использованием MyEnum.valueOf (str) можно заставить работать.
- Переключатель на String (или Object) 's плюс некоторые хэш-код более
if-then-else if
возможно, но , только бы смысл для многих возможностей, и в этом случае все это, вероятно, из-за ремонта.
+1 для * "разбить яйца," * ':)' – ADTC
- 1. Можно ли использовать вход в поле <label>?
- 2. Можно ли выполнить этот запрос без цикла?
- 3. Можно ли использовать переменную цикла в фильтре?
- 4. HTML: можно ли использовать элемент label с выделенным?
- 5. Можно ли использовать ссылки в JQuery Mobile Form Label?
- 6. Можно ли использовать Box без no_std?
- 7. Блок-схема «для каждого» цикла цикла без переменного приращения
- 8. Можно ли использовать nhibernate без отображения XML?
- 9. Можно ли использовать OpenShift без использования rhc?
- 10. Можно ли использовать BIRT без Eclipse?
- 11. Pyramid: Можно ли использовать авторизацию без аутентификации?
- 12. Можно ли использовать GStreamer без графического интерфейса?
- 13. Можно ли использовать Laravel 5 без фасадов?
- 14. Можно ли использовать pushViewController без контроллера навигации?
- 15. Можно ли использовать jQuery UI * Без * Цвета?
- 16. Можно ли использовать Ruby Mechanize без Nokogiri?
- 17. Можно ли использовать Disqus без ссылок?
- 18. Можно ли использовать Materializecss без jQuery?
- 19. Можно ли использовать OverlayItem.setMarker() без тени?
- 20. Можно ли использовать FOSCommentBundle без FOSUserBundle?
- 21. Можно ли использовать PJSIP (PJSUA2) без аудиоустройства?
- 22. Можно ли использовать Silverlight RiaServices без IIS?
- 23. Можно ли использовать webrtc без браузера?
- 24. Можно ли использовать массив без его инициализации?
- 25. Можно ли использовать облачный борт без сервера?
- 26. Можно ли использовать UILocalNotification без отображения сообщения?
- 27. Можно ли использовать LIMIT без ORDER BY
- 28. Можно ли использовать CListCtrl без MFC
- 29. Можно ли использовать служебную программу без буферизации?
- 30. Можно ли использовать getRowsData без диапазона?
w00t, узнал новую Java. – akuhn
Как насчет использования LABEL wihout в определенной LABEL. Например, если (i == 0) { Продолжить label1; } еще { // сделать что-то } Label1: { // сделать что-то } – DragonBorn
Я не думаю, что это возможно. Это на самом деле замаскированный goto, который не допускается на Java. – kgiannakakis