黑马程序员技术交流社区
标题:
求解这三行代码运行错误的原因
[打印本页]
作者:
hpuie0703
时间:
2016-2-14 10:28
标题:
求解这三行代码运行错误的原因
class Demo1_If {
public static void main(String[] args) {
//下面三行代码能否运行正常,为什么?如果运行失败,怎么解?
/* int grade1 = 70;
if (grade1 >= 60)
int x;*/
//运行2个错误:需要'.class',不是语句
//解决办法:对int x;加上大括号.
/* int grade1 = 70;
if (grade1 >= 60) {
int x;
}*/
}
}
问题: if的默认控制范围是一个语句,而int x;是一个语句,符合条件,上面的三行代码运行错误?
作者:
xieyangxuejun
时间:
2016-2-14 10:28
首先 int x;不是一个完整语句,if后不加括号允许执行一条语句,但是不能有声明,因为这会涉及作用域,但加了大括号就没有作用域了。这应该和代码块一样理解吧!
作者:
xiewenjian0313
时间:
2016-2-14 23:02
int x;同学,你这个就是一个错误啊。 int x ; 不能这样写啊
作者:
DavidWang
时间:
2016-2-15 15:43
这是什么。。。。。。。。。。。。
作者:
songzengyu
时间:
2016-2-15 22:51
int x;是声明,if后只有一个语句的时候不能有声明
作者:
黑马19期--李
时间:
2016-2-16 22:05
我来答吧,你加不加大括号,因为你if后面只有一句,所以if都能控制你那句int x;
但问题是 if里面的变量是局部变量,而你的声明int x;既没有赋值也没有运用执行这种书写因此是不能被java接受的,因此设置提示错误
作者:
hekaikai
时间:
2016-2-17 21:53
int x;是声明if后只有一个语句的时候不能有声明
作者:
hekaikai
时间:
2016-2-17 21:54
int x;是声明的 if是条件语句,后只有一个语句的时候不能有声明
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2