黑马程序员技术交流社区

标题: if 语句提问?? [打印本页]

作者: 13120298870    时间: 2016-5-2 00:33
标题: if 语句提问??
class IfDemo{
   public static void main(String[] args){
        int x = 3;
        if( x > 1 ){
            System.out.println("yes");
        }
        System.out.println("over");
   }
}
我不明白,这个为什么把“over”也打印出来了??if里面符合就打印“yes”,不就结束了吗?
作者: 18735346124    时间: 2016-5-2 01:44
缺少else{},应该把System.out.println("over");放在else语句中,选择输出,没有else的话,if语句执行完,会继续下面的执行
作者: 追忆睡梦已醒    时间: 2016-5-2 06:49
if语句使用不正确,要是这样使用if语句的话,执行完 System.out.println("yes");还会接着执行System.out.println("over");因为他们俩之间你没有加else语句啊。一起加油!
作者: TCK8888    时间: 2016-5-2 07:08
程序是顺序执行的,System.out.println("over")语句没在if语句体内,把他移到else就好使啦
作者: 精彩    时间: 2016-5-2 09:00
加油加油
作者: lll456123l    时间: 2016-5-2 09:05
你OVER写在循环外,当然要执行了
作者: MasterLHH    时间: 2016-5-2 09:55
lll456123l 发表于 2016-5-2 09:05
你OVER写在循环外,当然要执行了

...哪来的循环体
作者: lll456123l    时间: 2016-5-2 10:01
MasterLHH 发表于 2016-5-2 09:55
...哪来的循环体

SORRY 是IF语句 我总是习惯把IF当成WHILE
作者: lll456123l    时间: 2016-5-2 10:03
MasterLHH 发表于 2016-5-2 09:55
...哪来的循环体

SORRY 是IF语句 我总是习惯把IF当成WHILE
作者: ybqred    时间: 2016-5-2 10:04
不加else的话无论if内怎样变,都会输出over,因为 System.out.println("over");只是一个简单的打印语句,和前面的if没有任何关联!
作者: ybqred    时间: 2016-5-2 10:06
不加else的话无论if内怎样变,都会输出over,因为 System.out.println("over");只是一个简单的打印语句,和前面的if没有任何关联!
作者: lxd323    时间: 2016-5-2 10:10
程序是顺序执行的,执行完if语句,还会继续向下执行打印over,可以用if …… else语句,把打印over的语句写在else里
作者: Itheima_yuan    时间: 2016-5-2 10:13
程序是顺序执行的,main函数进栈,虽然你x=3符合条件语句里面的关系条件,输出了yes,但是这时程序继续往下走,遇到输出语句,执行完之后,main函数才弹栈
作者: 向尧    时间: 2016-5-2 10:50
因为你的if语句到第六行就结束了,看见没if 的大括号从第四行{  ,到第六行 }这样最后的System.out.println("over");
作者: 向尧    时间: 2016-5-2 10:52
向尧 发表于 2016-5-2 10:50
因为你的if语句到第六行就结束了,看见没if 的大括号从第四行{  ,到第六行 }这样最后的System.out.println ...

这样最后的System.out.println("over");就被当成了if语句结束后要输出的语句
作者: 善良的死神达乐    时间: 2016-5-2 11:10
你可以理解成if{}和else{}是固定格式...这种固定格式只会出现一个输出语句........而你的over是没有在这固定格式里面的...所以它不会遵循那个只输出一条语句的规则......
作者: 349153256    时间: 2016-5-2 11:18
else哪去了? 没有else就顺序执行了
作者: Erry    时间: 2016-5-2 11:18
over输出语句在if语句之外啊,同桌。
作者: rabbitguy    时间: 2016-5-2 11:28
打印over的语音在if的范围之外,顺序执行下来当然会打出来了.
加个else就不会了.
作者: 土豆你个马铃薯    时间: 2016-5-2 11:46
开始学的时候我跟你也一样,其实只要看最后两个右大括号.
在最后两个大阔上面的语句,就是在最前面两个左大括号的内容.
if{}已经结束了,跟后面的内容没有关系
作者: 张狮子    时间: 2016-5-2 12:35
程序是顺序执行的,   System.out.println("over");和if语句没有联系所以不管if如何都会执行




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