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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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");
        }
}
//结果是什么?

点评

这是for循环???  发表于 2012-11-12 20:49

29 个回复

倒序浏览
应该没结果吧.
回复 使用道具 举报
                if(m>0)

                        if(n>2)
                                System.out.println("A");        
                else//你这里跟第一个if对齐,吃果果的诱导!!
                        System.out.println("B");

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
else 和它上面最近的 if 配对。

相当于:
if(m>0)
       {
          if(n>2)
                  System.out.println("A");        
          else
                  System.out.println("B");
        }

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
class Demo
{      //主函数保证代码独立运行,是程序的入口
        public static void main(String[] args)
        {
                int m=0,n=3;//定义两个变量m,n,并给他们分别赋值。m=0,n=3,然后程序继续向下执行,
                if(m>0)//当执行到这里的时候,执行判断语句,如果满足,执行if下面的语句,否则,不执行if下面跟着的语句。在这里不满足条件。所以不执行下面跟着的语句。

                        if(n>2)
                                System.out.println("A");        
                else
                        System.out.println("B");
        }
}
因为两个if都没有用大括号注明自己的区间,所以这里的else,是和他上面离他最近的if是配套的。构成if,else语句。所以也不执行。所以这条代码什么都不打印。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
class Demo
{      //主函数保证代码独立运行,是程序的入口
        public static void main(String[] args)
        {
                int m=0,n=3;//定义两个变量m,n,并给他们分别赋值。m=0,n=3,然后程序继续向下执行,
                if(m>0)//当执行到这里的时候,执行判断语句,如果满足,执行if下面的语句,否则,不执行if下面跟着的语句。在这里不满足条件。所以不执行下面跟着的语句。

                        if(n>2)
                                System.out.println("A");        
                else
                        System.out.println("B");
        }
}
因为两个if都没有用大括号注明自己的区间,所以这里的else,是和他上面离他最近的if是配套的。构成if,else语句。所以也不执行。所以这条代码什么都不打印。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
什么都不打印
因为if(n>2)
                                System.out.println("A");        
                else
                        System.out.println("B");
是在if(m>0)循环中的;而m=0,程序直接跳转到结尾处。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
if判断如果不满足,就不会执行跟着它的第一句话,所以在判断m>0不满足时,就不再执行第二个if语句,就会直接跳至大括号,结束程序,没有输出结果!!!

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报

int m=0,n=3;
if(m>0){//不成立
    。。。
}else
System.out.println("第一个判断都没通过 能打出什么来,你小子很坑!!");

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
可以编译,但是没结果
else会和它最近的配对,第一个if语句没有和它配对的输出语句,所以没有输出结果。
class Demo
{
        public static void main(String[] args)
        {
                int m=0,n=3;
                if(m>0)//m=0不满足条件,下面的语句不再执行
                        if(n>2)
                                System.out.println("A");        
                         else
                        System.out.println("B");
                  System.out.print("C")  ;//要想看到结果,就在这里再来一句,与第一个if相匹配,那么输出的结果就是c了
        }
}

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 很给力!

查看全部评分

回复 使用道具 举报
class Demo
{
         public static void main(String[] args)
         {
                 int m=0,n=3;//你定义m的时候,把m初始化为0值,
                 if(m>0)        //当你使用if判断m>0的时候,条件是不成立的,所以你后面嵌套进去的if(n>2)……这些语句是不会执行的。

                        if(n>2)
                                 System.out.println("A");        
                else
                         System.out.println("B");
         }
}

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
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");
        }
}这个程序没有输出结果的

class Demo12
{
        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");
        }
}这个程序输入的是B
在使用if else语句时,如果if后面不只有一句话的话,最好加个{}来区分开,要不很容易造成误解的

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
刘菲 中级黑马 2012-11-12 20:09:58
13#
默认情况下if是与离它最近的else匹配,
本程序中如果想要else和第一个if匹配,则只需要加个{}说明一下后面的语句是第一个if的就可以了
程序:
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");
         }
}
打印结果为:B
希望能够帮到你!

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 很给力!

查看全部评分

回复 使用道具 举报
我不会告诉你结果的,因为---------你懂得---           根本就没哦
回复 使用道具 举报
第一个if 没有对应的 else,结果就是啥都没有!
回复 使用道具 举报
                if(n>2)
                                 System.out.println("A");        
                else
                         System.out.println("B");
这部分代码相当于是一条执行语句!
if(m>0)
条件不满足,所以程序直接跳转到最后一句!因此没有结果!
回复 使用道具 举报
都不打印吧,因为else离第二个if最近。当然不能相当然的,去手敲下,看看结果。其实写代码,把括号加起来怎么了,加个括号就影响程序的运行效率吗?
回复 使用道具 举报
if 属于单条语句,不管你是if  还是 if ... else  还是 if  .. else if  .. else  每次每个if只会执行出来一个结果。
另一个知识点是 else  与最接近它的那个 if 相匹配。
如果有想更好了解可以看看下面这个例子:
分辨:
n = 10;
if( n > 1)
   System.out.println(n);
if( n > 2 )
   System.out.println( n + 1 );

if( n > 3)                                       |
    System.out.println( n + 2);      |整体
else                                               |
   System.out.println( n + 3);       |

结果是:
10
11
12
13

回复 使用道具 举报
本帖最后由 张钧杰 于 2012-11-13 00:08 编辑

class Demo
{
         public static void main(String[] args)
         {
                 int m=0,n=3;//你定义m的时候,把m初始化为0值,
                 if(m>0) {      //当你使用if判断m>0的时候,条件是不成立的,所以你后面嵌套进去的if(n>2)……这些语句是不会执行的。

                        if(n>2)
                                  System.out.println("A");        
                        else
                                  System.out.println("B");
                      }
         }
}
应该这样写吧。m>2返回的是false,下面的红括号里的。都不会执行!
回复 使用道具 举报
//我们用打印输出语句可以做程序的判断,你这并不是一个什么循环,而是一个无意义的语句

class Demo{
        public static void main(String[] args){
                int m=0,n=3;
                if(m>0)
                System.out.println("C");//如果在这加上一句话,会打印输出C,去掉这语句由于if后面没有任何的分号,而if里面的条件又是没有意义的,就说明紧跟if后面的语句都是无意义的
                if(n>2)
                        System.out.println("A");        
                else
                        System.out.println("B");
                System.out.println("D");//如果不加上面那据输出,直接写上最下面输出这语句会打印D,也能进一步说明你上面的操作一切都是无意义的
        }
}
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马