黑马程序员技术交流社区

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

作者: 无所谓啦    时间: 2014-5-29 08:38
标题: 关于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,为什么?求详细分析步骤


作者: e10my    时间: 2014-5-29 11:11
@author e10my

public class TestIf{
        public static void main(String[] args){
                int i = 10;
                if(i<5);
// 直接就是 i = 10 >5 ;不成立。(注意有分号,这是个空的if语句。没有执行体、)
                        i=50;
// i 赋值,i = 50;
                System.out.println("i="+i);
//打印结果为50
                }
        }      


作者: code2014    时间: 2014-5-29 11:25
e10my 发表于 2014-5-29 11:11
@author e10my
public class TestIf{
        public static void main(String[] args){

赞一个~~~
作者: 西门吹风    时间: 2014-5-29 11:38
本帖最后由 西门吹风 于 2014-5-29 11:43 编辑

二楼说得对,补充一下,如果没有分号且 if不写大括号时,只对近它最近的语句有限制作用
                int i = 10
                 if(i<5)
                         i=50;
                 System.out.println("i="+i);
在代码中if并不能作用到System.out.println("i="+i)
也就是说不管if的条件是真是假都会执行System.out.println("i="+i),
作者: Hi天天向上    时间: 2014-5-29 12:35
if后面跟了一个分号  说明if语句没有执行快  很多误以为i=50是if的语句块  
作者: 汤姆纳斯    时间: 2014-5-29 12:38
学习了。




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