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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 燕国庆 高级黑马   /  2012-9-25 09:13  /  1835 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 燕国庆 于 2012-9-25 09:18 编辑

1

class IfDemo1
{
        public static void main(String[] args)
        {        
                int x=4;
                if (x>5)
                {
                        System.out.println("a");
                }
            else if (x>3)
                {
                        System.out.println("b");
                }
            else if (x>4)
                {
                        System.out.println("c");
                }
                else
                        System.out.println("over!");
        }
}        输出地是:b
2

class IfDemo1
{
        public static void main(String[] args)
        {        
                int x=4;
                if (x>5)
                {
                        System.out.println("a");
                }
            if (x>3)
                {
                        System.out.println("b");
                }
            if (x>4)
                {
                        System.out.println("c");
                }
                else
                        System.out.println("over!");
        }
}为什么输出地是b   over!



上面的两个例子为什么输出地不是一样的?当if else.    与if  两者之间有什么不同吗?有谁可以帮帮忙,求解释谢谢!!!!{:soso_e100:}{:soso_e115:}

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
首先第一个会输出:b,而第二个会输出:b 与 over,
上面的是一个if语句,只会执行它满足的那条,
而下面的,满足他的有两条,if(x>3)  所以打印 b
if(x>4)中的else也满足,索引打印over

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本来if 和else是连在一起的。if是真就执行if 中的,否则就执行else中的。而单独的写几个if ,那所有的if 都会判断 。你第一个程序等于是判断到  if (x>3)
                {
                        System.out.println("b");
                }就停了。而后面一个程序却是每一句都会执行。所以后面的是打印b     和over

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  1. package com.aduvm.practice;
  2. 1
  3. public class IfDemo1 {

  4.         /**
  5.          * @param args
  6.          */
  7.         public static void main(String[] args)
  8.                         {        
  9.                                 int x=4;
  10.                                 if (x>5)  //首先判断4>5吗 ? 不是,接着判断下句
  11.                                 {
  12.                                         System.out.println("a");
  13.                                 }
  14.                             else if (x>3)//4>3吗?是,所以执行括号里的语句,打印出b
  15.                                 {
  16.                                         System.out.println("b");
  17.                                 }
  18.                             else if (x>4)  //接着判断4>4吗?不是,接着判断
  19.                                 {
  20.                                         System.out.println("c");
  21.                                 }
  22.                                 else  //以上条件都不成立吗?不是,所以不打印over
  23.                                         System.out.println("over!");
  24.                         }
  25.                 }
  26.                
  27. 2
  28.                 class IfDemo1
  29.                 {
  30.                         public static void main(String[] args)
  31.                         {        
  32.                                 int x=4;
  33.                                 if (x>5)  //4大于5吗?不是 接着判断下一句
  34.                                 {
  35.                                         System.out.println("a");
  36.                                 }
  37.                             if (x>3) //4大于3吗?是,所以打印出b
  38.                                 {
  39.                                         System.out.println("b");
  40.                                 }
  41.                             if (x>4)  //4大于4吗,不是 接着判断下一句
  42.                                 {
  43.                                         System.out.println("c");
  44.                                 }
  45.                                 else  //以上条件都不成立吗?不是,所以不打印over
  46.                                         System.out.println("over!");
  47.                         }
  48.                 }//为什么输出地是b



  49.        


复制代码

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报


class IfDemo1
{
        public static void main(String[] args)
        {        
                int x=4;
                if (x>5)
                {
                        System.out.println("a");
                }
            else if (x>3)
                {
                        System.out.println("b");//从if到else是一个整体,执行到else(x>3)时条件符合,输出b后结束。
                }
            else if (x>4)
                {
                        System.out.println("c");
                }
                else
                        System.out.println("over!");
        }
}        输出地是:b
2

class IfDemo1
{
        public static void main(String[] args)
        {        
                int x=4;
                if (x>5)
                {
                        System.out.println("a");
                }
            if (x>3)
                {
                        System.out.println("b");
                }
            if (x>4)
                {
                        System.out.println("c");
                }
                else
                        System.out.println("over!");
        }
}//前两个if各自独立,执行到第二个if条件符合输出b,而第三个if和后面的else是个整体,判断if(x>4)不符合,就执行else语句。输出over。
回复 使用道具 举报
上面的是一个if语句,只会执行它满足的那条,
而下面的,满足他的有两条,if(x>3)  所以打印 b
if(x>4)中的else也满足,索引打印over

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马