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. 这个查询可以在没有循环的情况下完成吗?
- 2. 我可以在没有循环的情况下清理一个numpy数组吗?
- 3. 我可以在没有CALayers的情况下使用Core Animation吗?
- 4. 我可以在没有Node.js的情况下使用Tumblr.js吗?
- 5. 我可以在没有Zend_Application的情况下使用zfdebug吗?
- 6. 我可以在没有SharePoint的情况下使用K2 Blackpearl吗?
- 7. PowerMock可以在没有注释的情况下使用吗?
- 8. Vala可以在没有GObject的情况下使用吗?
- 9. 可以在没有列表的情况下使用LOAD TABLE吗?
- 10. jInterface可以在没有节点的情况下使用吗?
- 11. 你可以在没有Bootstrap的情况下使用Jinja吗?
- 12. 我可以在没有虚拟环境的情况下使用烧瓶吗?
- 13. GWT。没有GAE的情况下可以使用Channel API吗?
- 14. 可以在没有setter的情况下设置BeanUtils.setProperty()的值吗?
- 15. Kubernetes Kube-Proxy Server:它可以在没有iptables'nat模块的情况下运行吗?
- 16. 我可以在没有Visual Studio的情况下创建ClickOnce吗?
- 17. 我可以在没有api_key的情况下访问Facebook API吗?
- 18. 我可以在没有pgAdmin4的情况下安装postgresql吗?
- 19. 我们可以在没有DataAdapter的情况下填充DataSet吗?
- 20. 可以在没有cvsnt的情况下独立工作吗?
- 21. 我可以在没有ADFS的情况下设置SAML IDP吗?
- 22. 我可以在没有ID的情况下放入吗?
- 23. 这可以在没有Quasi Quoter的情况下完成吗?
- 24. TelephonyManager.getDeviceId可以在没有SIM卡的情况下工作吗?
- 25. wordpress主题可以在没有WordPress的情况下工作吗?
- 26. 我可以在没有黑条的情况下旋转UIView吗?
- 27. 视频可以在没有控制的情况下播放吗?
- 28. 这可以在没有同步AJAX的情况下完成吗?
- 29. 我可以在没有keystone的情况下安装swift吗?
- 30. 我可以在没有IIS的情况下安装SharePoint Foundation吗?
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