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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 无所谓啦 高级黑马   /  2014-5-29 08:38  /  1051 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class TestIf{
        public static void main(String[] args){
                int i = 10;
                if(i<5);
                        i=50;
                System.out.println("i="+i);
                }
        }       //i=50,为什么?求详细分析步骤

6 个回复

倒序浏览
@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
                }
        }      

回复 使用道具 举报
e10my 发表于 2014-5-29 11:11
@author e10my
public class TestIf{
        public static void main(String[] args){

赞一个~~~

点评

可以顺手点个 “支持” thx、  发表于 2014-5-29 11:29
回复 使用道具 举报
本帖最后由 西门吹风 于 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),
回复 使用道具 举报
if后面跟了一个分号  说明if语句没有执行快  很多误以为i=50是if的语句块  
回复 使用道具 举报
学习了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马