黑马程序员技术交流社区

标题: 一个四条语句的程序,怎么错了??? [打印本页]

作者: woshijingke    时间: 2016-5-18 16:52
标题: 一个四条语句的程序,怎么错了???
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错了,但是怎么错的,哪位大神可以解答一下?
作者: glacial    时间: 2016-5-18 17:20
留个脚印等解释,肯定是c,但我也没想通为什么。。。将代码中int y在if语句之前定义就不会报错
作者: yuanqingleivip    时间: 2016-5-18 19:58
C错了,if语句后面要加一个完整的句子,int y=200不是语句。 还有static你拼写错了。
作者: li6232876    时间: 2016-5-18 22:29
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不加大括号,默认控制的只是离他最近的第一条执行语句
        }



纯手打,如果觉得可以请点个支持,谢谢!
作者: huhemingtiancai    时间: 2016-5-18 23:44
折这样啊,学到额
作者: JohnChan    时间: 2016-5-18 23:53
C错了,if语句后面要加一个完整的句子,int y=200不是语句。 static你也拼写错了。
作者: Noodles.    时间: 2016-5-18 23:56
int y =100;  ==> int y; y=100;  这是两句话!
作者: 我是你岁哥❤环    时间: 2016-5-19 00:07
C错了,if语句后面不加大括号的话,默认执行的是离他最近的第一条执行语句,因为,int y = 200;程序编译时拆分成int y 和 y=200这两个语句,此处不允许声明变量
作者: 刘宽    时间: 2016-5-19 00:17
没看太多,你运行一下不就知道吗
作者: hycold    时间: 2016-5-19 00:30
走过路过学习下
作者: 68帅锅    时间: 2016-5-19 00:37
我感觉是B...........
作者: 18735346124    时间: 2016-5-19 00:46
C错了,如果if语句不加{}的话,只能控制离他最近的一条语句,而,int y =200;这个语句其实是两条语句,一个是声明一个变量int y;还有一条是给y赋值y = 200;编译时无法确定最近一句,所以会报错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2