黑马程序员技术交流社区

标题: 关于If的一个题目,求分析解答! [打印本页]

作者: 无所谓啦    时间: 2014-5-29 08:09
标题: 关于If的一个题目,求分析解答!
public class TestIf{
        public static void main(String[] args){
                int i = 10;
                if(i<5);
                        i=50;
                System.out.println("i="+i);
                }
        }       //i=50,为什么?求详细分析步骤


作者: Quasimodo    时间: 2014-5-29 08:18
书写格式错误,if(i<5)后面不该有分号,你写上了分号表示结束了这条语句,然后后面的i=50就相当于把50赋予了i,打印出来的当然就是i=50啦。
作者: lin'    时间: 2014-5-29 08:23
呵呵,你的if(i<5)后面是不是有分号结尾了呀,去了分号就不会等于50了(错误原因:你在写完if条件后就已经结束了if判断,i=50不在if内,这么说明白吗?)
作者: 无所谓啦    时间: 2014-5-29 08:34
lin' 发表于 2014-5-29 08:23
呵呵,你的if(i

明白了,谢谢大家!
作者: lin'    时间: 2014-5-29 09:07
无所谓啦 发表于 2014-5-29 08:34
明白了,谢谢大家!

不用谢,下次注意认真点书写就不会用这样的错误了,另外再告诉你if地下如果就一句话可以默认不加{},如果不是一句话得加上{}不然又会报错的哦,
作者: pengyu    时间: 2014-5-29 11:50
if里面就算没用语句最好也加上{}方便自己分析哦
作者: 小坏坏    时间: 2014-5-29 20:45
if后面带了个分号,i=50不是在If语句内的,程序会一直运行到i=50这句话,所以输出50
作者: 北极£莜蓝    时间: 2014-5-29 21:39
书写格式错误,if语句的格式:if(Boolean类型表达式){执行语句}

if(i<5)后面不能有分号,你写上了分号表示结束了这条语句,然后后面的i=50就相当于把50赋予了i,打印出来的当然就是i=50啦.




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