![](/img/trans.png)
[英]Object creating statement in Java doesn't allow to use a single-line loop. Why?
[英]Why doesn't Java allow creating integers inside a conditional statement
当我尝试以下代码时,它给我一个错误
int a =1,b=2;
if(a < b)
int c = 10;
但是如果我做同样的事情,添加花括号,它会很好地工作
int a =1,b=2;
if(a < b)
{
int c = 10;
}
但是我很好奇为什么Java不允许在if条件内创建变量。
与整数无关,只是您不能在没有括号的if
语句下声明。 请注意,这将是毫无意义的,因为这将意味着声明将位于if
语句的本地,而if
语句也将具有一条指令(这是不带括号的意思),这意味着将永远不会使用此声明。
使它更具“视觉效果”:
if (condition) instruction;
相当于
if (condition) {
instruction;
}
所以你的情况
if(a < b) {
int c = 10;
}
是没有意义的代码,因为将永远不会使用c
。 因此,Java不允许编写
if(a < b) int c = 10;
带括号的if
语句将允许您在块中包含任何内容(甚至根本没有内容),但是如果您在不使用声明的变量的情况下进行声明,则仍会收到警告。
您的int c = 10;
应该是一个块局部变量。 您只能在内部有一个块(或某些控制结构,如for
),这些块用curlies表示。 裸int c = 10;
不是一个障碍。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.