public class Getterm{
       public static void main(String args[]){       int x=20;
       if(x>30){       System.out.println("a值大于30");
       }else if(x>10){       System.out.println("a值大于10,但小于30");
       }else if(x>0){       System.out.println("a值大于0,但小于10");
       }else{       System.out.println("a值小于0");
       }
   }
}
       -------------------------------------
上面的是教程中的一个例子,为什么程序在执行完x>10后面的语句后就退出呢?
后面的x>0运算结果同样是真的啊?
why?

解决方案 »

  1.   

    因为你加else了
    else是否则的意思
    也就是说,要进到下一个else if的话必须不满足上面一个if
    而你的条件满足上一个了,所以不进去
      

  2.   

    怎么说呢,因为你用了if else{},它从上至下执行,遇到一个if满足条件后,后面的if else就不再执行了.
    if(x>30){       System.out.println("a值大于30"); 
          }else if(x>10){       System.out.println("a值大于10,但小于30"); 
          }else if(x>0){       System.out.println("a值大于0,但小于10"); 
          }else{       System.out.println("a值小于0"); 
          } 
    这个执行过程是这样的,首先程序会判断x>30,结果为false,所以继续往下执行,接着判断x>10,此时x确实大于10,所以为true,就输出"a值大于10,但小于30",至此下面的if else就不会再去执行了,如果你想让下面的也去执行就要把else去掉,程序如下:
    if(x>30){       System.out.println("a值大于30"); 
          }
    if(x>10){       System.out.println("a值大于10,但小于30"); 
          }
    if(x>0){       System.out.println("a值大于0,但小于10"); 
          }
      

  3.   

    if ...else if...就是冲第一个判断,如果成立了就结束if语句了,如果不成立就一直走到最后一个else if还不成立,如果没有else就结束,有就走else。
      

  4.   

    看到这个else了吧,在题中有它的意思就是如果x>30不成立,即在x<=30的情况下继续判断,接下来是x>10,综合起来就是10<x<=30。
    明白了否?
      

  5.   

    如果你想执行的话 去掉else就可以了
    public class Getterm{ 
          public static void main(String args[]){       int x=20; 
          if(x>30){       System.out.println("a值大于30"); 
          }if(x>10){       System.out.println("a值大于10,但小于30"); 
          } if(x>0){       System.out.println("a值大于0,但小于10"); 
          }else{       System.out.println("a值小于0"); 
          } 
      } 

      

  6.   

    public class Getterm{ 
          public static void main(String args[]){       int x=20; 
          if(x>30){ 
              System.out.println("a值大于30"); 
          }else if(x>10){ 
                   System.out.println("a值大于10,但小于30"); 
                   }else if(x>0){ 
                            System.out.println("a值大于0,但小于10"); 
                         }else{ 
                            System.out.println("a值小于0"); 
                           } 
                  } 
      } 这样应该明白了吧,一个else配对一个if。可以只有单独的一个if语句,但是不能有单个的else语句。
      

  7.   


    如果if..else很多,最好还是写成if...if...这样有时候会更明了.
      

  8.   

    LZ基础还要加强,
    if ...else if...就是冲第一个判断,如果成立了就结束if语句了,如果不成立就一直走到最后一个else if还不成立,如果没有else就结束,有就走else。
    流程就是这么走的!
      

  9.   

    每个else都是对前面的否定,else if(x>0)其实是x>0&&x<10。
    最先满足条件的else if执行完之后,后面的就不会再执行了,因为后面的else if是对前面的否定。
    再看看书吧!
      

  10.   

    else  if 
    和  IF  区别
    if 是每次都判断  
    else if  有一个对了  就不判断其他的ELSE IF了
      

  11.   

    多看哈书
    这是最基础最基础的
    if else是程序经常用的~
    学语言一定要弄懂的!
      

  12.   

    - - .if ~else 结构你还不是很熟,遇到条件为真就跳出了 . 
    你把那个else~if改成if 就能了
      

  13.   

    else总是向上找匹配的if,当if成立时,执行完if中的代码后就跳出了整个条件语句。所以只要是属于第一个else的部分都被跳出,至于后面的那些if-else...就都被跳出来了。这不是什么特别的思想吧,就按部就班的来呗!
      

  14.   

    if else if else if
    是逐一条件查询执行
      

  15.   

    这是最基础的,如果你想继续执行其他判断的话, 要目就不用加else, 要不就用switch不加break。
      

  16.   

    你连else  if 怎么用都没有弄清楚
    if 
    else if
    else if
    else if
    else
    满足一个条件就只执行那一句