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

时间:2016-07-31 01:51:01

标签: java

当我尝试以下代码时,它会给我一个错误

int a =1,b=2;
if(a < b)
 int c = 10;

但如果我做同样的添加花括号,它可以正常工作

int a =1,b=2;
if(a < b)
{
 int c = 10;
}

但我很好奇为什么Java不允许在if条件中创建变量。

2 个答案:

答案 0 :(得分:5)

关于整数,它只是你不能在没有括号的if声明下声明。请注意,这将是完全没有意义的,因为它意味着声明将是if语句的本地语句,它也会有一条指令(它的意思是没有括号),这意味着这个声明会永远不会被使用。

更多地使用&#34; visual&#34;:

if (condition) instruction;

相当于

if (condition) {
    instruction;
}

所以在你的情况下

if(a < b) {
   int c = 10;
}

是一个无意义的代码,因为永远不会使用c。因此,Java允许编写

是没有意义的
if(a < b) int c = 10;

带括号的if语句将允许您在块中的任何内容(甚至根本没有内容)但如果您在不使用声明的变量的情况下进行声明,您仍然会收到警告。

答案 1 :(得分:1)

您的int c = 10;应该是一个块本地变量。你只能将这些内部,一个块(或某些控制结构,如for),这些块用curlies表示。裸体int c = 10;不是块。