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

为什么';Java不允许在条件语句中创建整数,java,Java,当我尝试下面的代码时,它给出了一个错误 int a =1,b=2; if(a < b) int c = 10; inta=1,b=2; if(a

当我尝试下面的代码时,它给出了一个错误

int a =1,b=2;
if(a < b)
 int c = 10;
inta=1,b=2;
if(a
但如果我也这样做,加上花括号,效果很好

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

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

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

要使其更“直观”:

相当于

if (condition) {
    instruction;
}
那么你的情况呢

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

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

您的
int c=10
应该是块局部变量。您只能在一个块(或一些控制结构,如
)中包含这些块,这些块用卷曲表示。A裸
int c=10不是块。

@Dici:谢谢您的编辑。我的iPad没有背面标记,我无法使用我的开发计算机。现在我可以再次使用它了。在iPad上点击Backticks,按住单个引号character@JimGarrison:谢谢!你让我的生活轻松了一点<代码>它工作。在德国键盘上仍然有点麻烦,但可能。耶!您还可以使用编辑器中的
{}
按钮。如果你有一个看起来像“跨度”的东西(不是一块线),它会用反勾线把它包起来;如果在没有任何标记的情况下按它,它将插入一对反勾号,并将光标放在它们之间。对于选定的行块,它缩进4个空格。@Dici:我会键入一个“LOL!”,但这对于注释来说太短了。
if(a < b) {
   int c = 10;
}
if(a < b) int c = 10;