A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Demo {
     public staitic void main(String[] args) {
         A    int x = 100;
         B    if (x > 10)
         C    int y = 200;
         D    System.out.println("Hello World");
    }
}

问:A B C D四条语句哪个语句错了,怎么错了?
我感觉是C错了,但是怎么错的,哪位大神可以解答一下?

11 个回复

倒序浏览
留个脚印等解释,肯定是c,但我也没想通为什么。。。将代码中int y在if语句之前定义就不会报错
回复 使用道具 举报
C错了,if语句后面要加一个完整的句子,int y=200不是语句。 还有static你拼写错了。
回复 使用道具 举报
C错了,if语句后面如果不加大括号,默认执行的是离他最近的第一条执行语句,nt y=200不是执行语句,所以报错。
你可以这样写:
                int x = 100;
                if (x > 10) {
                        int y = 200;
                }
                System.out.println("Hello World");
或是这样写:
        public static void main(String[] args) {
                int x = 100;
                if (x < 10)
                //int y = 200;
               
                System.out.println("Hello World");  //没有输出,因为被if限制,不满足x < 10;
               
                System.out.println("x="+x);  //输出了,x=100,说明if不加大括号,默认控制的只是离他最近的第一条执行语句
        }



纯手打,如果觉得可以请点个支持,谢谢!
回复 使用道具 举报
折这样啊,学到额
回复 使用道具 举报
C错了,if语句后面要加一个完整的句子,int y=200不是语句。 static你也拼写错了。
回复 使用道具 举报
int y =100;  ==> int y; y=100;  这是两句话!
回复 使用道具 举报
C错了,if语句后面不加大括号的话,默认执行的是离他最近的第一条执行语句,因为,int y = 200;程序编译时拆分成int y 和 y=200这两个语句,此处不允许声明变量
回复 使用道具 举报
刘宽 中级黑马 2016-5-19 00:17:13
9#
没看太多,你运行一下不就知道吗
回复 使用道具 举报
走过路过学习下
回复 使用道具 举报
我感觉是B...........
回复 使用道具 举报
C错了,如果if语句不加{}的话,只能控制离他最近的一条语句,而,int y =200;这个语句其实是两条语句,一个是声明一个变量int y;还有一条是给y赋值y = 200;编译时无法确定最近一句,所以会报错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马