当我尝试下面的代码时,它给了我一个错误
int a =1,b=2;
if(a < b)
int c = 10;
Run Code Online (Sandbox Code Playgroud)
但如果我做同样添加花括号,它工作正常
int a =1,b=2;
if(a < b)
{
int c = 10;
}
Run Code Online (Sandbox Code Playgroud)
但我只是好奇为什么Java不允许在if条件中创建变量.
它不是整数,只是你不能在if没有括号的声明下声明.请注意,这将是完全没有意义的,因为它意味着声明将是if语句的本地,它也将有一条指令(它的意思是没有括号),这意味着永远不会使用此声明.
为了使它更"直观":
if (condition) instruction;
Run Code Online (Sandbox Code Playgroud)
相当于
if (condition) {
instruction;
}
Run Code Online (Sandbox Code Playgroud)
所以在你的情况下
if(a < b) {
int c = 10;
}
Run Code Online (Sandbox Code Playgroud)
是一个无意义的代码,因为c永远不会被使用.因此,Java允许写入是没有意义的
if(a < b) int c = 10;
Run Code Online (Sandbox Code Playgroud)
if带括号的语句将允许您在块中的任何内容(甚至根本没有内容),但如果您在不使用声明的变量的情况下进行声明,您仍会收到警告.
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |