繁体   English   中英

Java为什么不允许在条件语句中创建整数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM