LABEL塊是否可以在沒有迴路的情況下使用?任何例子?LABEL塊可以在沒有循環的情況下使用嗎?
4
A
回答
4
public static void main(String[] args)
{
hello: break hello;
}
14
Here是使用標籤和break語句沒有環的一個例子:
block1: {
if (a < 0) {
break block1;
}
if (b < 0) {
break block1;
}
return a + b;
}
0
如果你想要一些不可讀代碼:
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;
將跳過打印。
2
肯定:
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
+0
如何使用LABEL而不在定義的LABEL中。就像if(i == 0){ continue label1; }其他{// 做一些 } LABEL1:{// 做一些 } – DragonBorn 2009-12-21 15:09:13
5
但是,爲什麼一個代碼塊上使用標籤?
我的應用程序通常是一個字符串變量(或除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)可以工作。
- 的字符串(或 對象)交換機的哈希碼加上一些
if-then-else if
是可能的,但 只會使意義很多的可能性,在這種情況下 整個事情很可能是由於該大修了。
+2
+1 * 「打破雞蛋;」 *':)' – ADTC 2014-08-05 04:50:33
相關問題
- 1. 可以在沒有GLib主循環的情況下使用GStreamer嗎?
- 2. 我可以在沒有用戶的情況下使用oauth2嗎?
- 3. 這個查詢可以在沒有循環的情況下完成嗎?
- 4. 我可以在沒有循環的情況下清理一個numpy數組嗎?
- 5. 我可以在沒有Node.js的情況下使用Tumblr.js嗎?
- 6. 可以在沒有列表的情況下使用LOAD TABLE嗎?
- 7. 可以在沒有相機的情況下使用Vuforia嗎?
- 8. AngularJS可以在沒有REST API的情況下使用嗎?
- 9. aws - 我可以在沒有S3的情況下使用EC2嗎?
- 10. Vala可以在沒有GObject的情況下使用嗎?
- 11. jInterface可以在沒有節點的情況下使用嗎?
- 12. 可以在沒有命令行的情況下使用Singularity.gs嗎?
- 13. 你可以在沒有Bootstrap的情況下使用Jinja嗎?
- 14. PowerMock可以在沒有註釋的情況下使用嗎?
- 15. 我可以在沒有Eclipse的情況下使用BIRT嗎?
- 16. 我可以在沒有CALayers的情況下使用Core Animation嗎?
- 17. 我可以在沒有Zend_Application的情況下使用zfdebug嗎?
- 18. 我可以在沒有SharePoint的情況下使用K2 Blackpearl嗎?
- 19. 我可以在沒有虛擬環境的情況下使用燒瓶嗎?
- 20. GWT。沒有GAE的情況下可以使用Channel API嗎?
- 21. 如何在沒有循環的情況下乘以向量?
- 22. 函數可以在沒有類的情況下調用嗎? php
- 23. 我可以在沒有while循環的情況下編寫以下查詢並提高效率嗎?
- 24. 我可以在沒有使用PDO的情況下使用Cakephp 2嗎?
- 25. 可以在沒有setter的情況下設置BeanUtils.setProperty()的值嗎?
- 26. 你可以在沒有SKSprite的情況下畫出紋理嗎?
- 27. 這可以在沒有Quasi Quoter的情況下完成嗎?
- 28. PHP會話可以在沒有Cookie的情況下工作嗎?
- 29. 我可以在沒有鍵盤的情況下訪問stdin嗎?
- 30. Microsoft.office.interop.word.dll可以在沒有安裝Office的情況下工作嗎?
w00t,學到了一些新的Java。 – akuhn 2009-12-21 14:38:28
如何使用LABEL而不在定義的LABEL中。就像if(i == 0){ continue label1; }其他{// 做一些 } LABEL1:{// 做一些 } – DragonBorn 2009-12-21 15:07:29
我不認爲這是可能的。它實際上是一個僞裝的goto,這在Java中是不允許的。 – kgiannakakis 2009-12-21 15:49:37