黑马程序员技术交流社区
标题: 关于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
赞一个~~~
作者: 西门吹风 时间: 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 |