首页 > 技术文章 > 一个考察for循环题 讨论一下

bester 2013-08-15 19:31 原文

 一道Java程序题,主要是考察for循环如下所示:

 public class Test {  
    static boolean fun(char c) {   
      System.out.print(c);    
        return true;   
  }      
 public static void main(String[] args) {     
     int i=0;         
   for(fun('A');fun('B')&&(i<2);fun('C')) {      
       i++;     
        fun('D');   
   }    
  }  
}  

  这道题考察的就是对for循环的理解。for(A,B,C){执行语句},在for循环中,A代表的是初始化语句,B代表判断语句,C代表循环条件。

  即for(初始化语句,判断语句,循环条件){执行语句}。

  对于上面的程序for(fun('A');fun('B')&&(i<2);fun('C'))

  首先,方法fun(‘A’)是初始化条件,所以只执行一次,fun(‘A’)返回打印A。

  然后,当i=0时, 符合i<2的循环条件,执行fun(‘B’)打印B,然后执行大括号内的循环语句,执行i++,输出D,最后执行fun(‘C’),输出C。这次循环的输出结果是ABDC

  同理,i=1时,执行结果是BDC,i变为2。

  最后,fun('B')&&(i<2)的执行是从左向右,fun(‘B’)输出B,2<2不成立,终止循环。

  所以,最终输出的结果是ABDCBDCB


  出处:http://www.cnblogs.com/bester/p/3260661.html

推荐阅读