本帖最后由 何万县 于 2012-4-1 13:40 编辑  
 
public class Test03 { 
     public static void main(String[] args) { 
         int m = 5, n = 5; 
         if ((m != 5) && (n++ == 5)) { 
         } 
         System.out.println("a:" + n); 
         m = n = 5; 
         if ((m != 5) & (n++ == 6)) { 
         } 
         System.out.println("b:" + n); 
         m = n = 5; 
         if ((m == 5) || (n++ == 5)) { 
         } 
         System.out.println("c:" + n); 
         m = n = 5; 
         if ((m == 5) | (n++ == 6)) { 
         } 
         System.out.println("d:" + n); 
     } 
 }[/code] 
 输出 
 a:5 
 b:6 
 c:5 
 d:6 
 对于&&来说若前一个表达式为false,则不会执行下一个表达式,所以n++没有运行。 
 对于||来说若前一个表达式为true,则不会执行下一个表达式,所以n++也没有运行。 
 这个就是短路行为 
  
今天终于弄明白了 |   
        
 
    
    
    
     
 
 |