黑马程序员技术交流社区

标题: 这个程序结果是什么? [打印本页]

作者: 魏文杰    时间: 2014-12-9 21:50
标题: 这个程序结果是什么?
4.写出结果。
class Demo
{
        public static void main(String[] args)
        {
                int m=0,n=3;
                if(m>0)

                        if(n>2)
                                System.out.println("A");       
                else
                        System.out.println("B");
        }
}
结果是什么?
为什么?
作者: 焦明坤    时间: 2014-12-9 22:04
你确定你这个程序能运行?大哥
作者: 不淡定,小学生    时间: 2014-12-9 22:19
该程序没有结果。因为m=0,所以第一个if语句中的判断中m>0是不成立的,所以下边没有运行。
作者: zqbemail    时间: 2014-12-9 22:23
没有结果,你这个程序相当于:
class Demo
{
         public static void main(String[] args)
         {
                 int m=0,n=3;
                 if(m>0)
                 {
                         if(n>2)
                                 System.out.println("A");        
                         else
                                 System.out.println("B");
                }
         }
}
作者: yunxiao    时间: 2014-12-9 22:42
没有结果,
因为  else对应的是内层for循环,而程序在外层循环的时候就不满足条件,故没有结果
作者: 慕容冰若    时间: 2014-12-9 22:53
是没有结果的额。因为m=0,不满足m>0,所以没有结果。。
作者: javaAndroid    时间: 2014-12-10 00:08
没结果。
if和else语句
如果没有手动去指定关联情况
那else则是和离他最近的那个if相关联。
作者: zmhlnrs    时间: 2014-12-10 00:16
第一个int m=0;if(m>0)直接不满足
没有运行结果
作者: 唐的    时间: 2014-12-10 00:27
class Demo
{
         public static void main(String[] args)
         {
                 int m=0,n=3;
                 if(m>0)
                 {
                         if(n>2)
                                 System.out.println("A");        
                         else
                                 System.out.println("B");
                }
         }
}

if嵌套 第一个条件不成立  这么能往下执行?
作者: 戴高乐    时间: 2014-12-10 11:19
这个程序一般不这么写哦 有问题哦
作者: 曹震国    时间: 2014-12-10 11:27
没有结果
作者: 魏文杰    时间: 2014-12-10 13:13
javaAndroid 发表于 2014-12-10 00:08
没结果。
if和else语句
如果没有手动去指定关联情况

懂了,谢谢!else没缩进,我以为是跟着第一个if呢。。。谢谢!
作者: 魏文杰    时间: 2014-12-10 13:16
戴高乐 发表于 2014-12-10 11:19
这个程序一般不这么写哦 有问题哦

什么问题?
作者: 魏文杰    时间: 2014-12-10 13:20
zqbemail 发表于 2014-12-9 22:23
没有结果,你这个程序相当于:
class Demo
{

谢谢,,我以为else是跟着第一个if呢。。。
作者: 魏文杰    时间: 2014-12-10 13:21
焦明坤 发表于 2014-12-9 22:04
你确定你这个程序能运行?大哥

这是老师写的。。。。怎么不行。。。。
作者: dengchao    时间: 2014-12-10 14:33
老师可以这样写 因为他资质深 你写的话别人就会说你不规范
作者: 魏文杰    时间: 2014-12-10 18:22
dengchao 发表于 2014-12-10 14:33
老师可以这样写 因为他资质深 你写的话别人就会说你不规范

是的。。。。。。。。。。。
作者: zhouli_2014    时间: 2014-12-10 20:25
学习了学习了~~
作者: 叫我小强    时间: 2014-12-10 21:25
这个小程序,在判断if语句的条件m>0时的结果就为false了,所以下面的语句不会执行,但是语法上没有错误,所以编译没有问题。。
作者: 農邨尛夥兒    时间: 2014-12-10 21:53
没有结果  else找最近的if组合配对
作者: c91764000    时间: 2014-12-10 21:53
代码本身没有语法错误,编译时会通过的。但是没有结果。因为if(m>0) 是false,下面的语句将不会被执行。
作者: 農邨尛夥兒    时间: 2014-12-10 21:54
魏文杰 发表于 2014-12-10 13:13
懂了,谢谢!else没缩进,我以为是跟着第一个if呢。。。谢谢!

你格式上缩进了也是不可以的  想要和第一个if去成对的话 就需要将第二个if用{}标识
作者: 红楼    时间: 2014-12-10 22:13
没有结果的,循环条件都不成立
作者: 侯鹏成    时间: 2014-12-10 22:32
如果else语句和紧挨着他的if语句关联,那么程序运行结果什么也没有。因为m不大于0,所以程序并没有执行
作者: wzl963358694    时间: 2014-12-10 22:41
因为m=0,不满足m>0,所以没有结果
作者: ben_vs_cong    时间: 2014-12-10 22:50
什么结果都没有,因为在if....else这里,你没有打到括号,那么if和最近的一个else就会是一个语句块,那么相当于下面这个,那么m不满足if的条件,所以不会执行里面的语句
              if(m>0)
             {
                        if(n>2)
                                System.out.println("A");      
                        else
                                System.out.println("B");
              }
作者: cz萑    时间: 2014-12-10 22:59
没有结果吧,你的else是第二个if的,想要有结果,把第二个if放在大括号里,这样你的m>0不满足时才能有的执行
作者: cz萑    时间: 2014-12-10 23:01
没有结果吧,你的else是第二个if的,想要有结果,把第二个if放在大括号里,这样你的m>0不满足时才能有的执行
作者: 焦明坤    时间: 2014-12-10 23:02
魏文杰 发表于 2014-12-10 13:21
这是老师写的。。。。怎么不行。。。。

格式就不对,然后条件不满足,执行不了吧!!!
作者: 擒贼先擒王    时间: 2014-12-10 23:15
这个源码写的也太不规范了!
作者: 魏文杰    时间: 2014-12-11 11:51
红楼 发表于 2014-12-10 22:13
没有结果的,循环条件都不成立

哪有循环啊 。。。。。。。。。
作者: 魏文杰    时间: 2014-12-11 11:52
ben_vs_cong 发表于 2014-12-10 22:50
什么结果都没有,因为在if....else这里,你没有打到括号,那么if和最近的一个else就会是一个语句块,那么相 ...

谢谢,懂了。。。。:handshake
作者: 魏文杰    时间: 2014-12-11 11:53
cz萑 发表于 2014-12-10 22:59
没有结果吧,你的else是第二个if的,想要有结果,把第二个if放在大括号里,这样你的m>0不满足时才能有的执 ...

谢谢,,,明白了 。。。。。。
作者: 魏文杰    时间: 2014-12-11 12:17
擒贼先擒王 发表于 2014-12-10 23:15
这个源码写的也太不规范了!

如果写规范了,我也就不用问你们了。。。。:)
作者: 南柯一梦境    时间: 2014-12-11 12:31
看似很简单,其实很深奥啊,受教了
作者: 沙子    时间: 2014-12-11 13:24
此程序无结果,因为if(n>2)和else是一个if else 结构,而if(m>0)的条件都无法满足,无法进入到if(n>2)的判断条件。所以两个上输出语句都不会输出。
作者: as604049322    时间: 2014-12-11 13:34
{:3_55:}{:3_62:}
作者: 双鱼座程序员    时间: 2014-12-11 13:56
我的理解,程序编译可通过。但是也可以执行。只是没有执行语句。所以程序应该是在不间断执行中。它要找到自己应该结束的地方。但始终找不到。所以执行后也不会显示任何结果。楼上有哥们说类似于一个不执行的class Demo ,这么理解也是可以的。
作者: 冷风    时间: 2014-12-11 20:27
.....第一眼  我也把else弄成是第一个的还想这是”B“了一看下面才知道  自己也弄错了。:L
作者: 小小志    时间: 2014-12-13 12:51
我一般不这么写
作者: Hello_Boys    时间: 2014-12-13 13:29
else 是第二个if的 第一个if就没执行,所以不会有结果。




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