for循环的问题

在我们的正常编写代码和做笔试题的时候经常会遇到这么一个问题就是for循环的问题,那么前一段时间我从网上看到这么一个问题:

public class T {
    public  static boolean  testA(char a){
        System.out.print(a);
        return true;
    }
    /**
     * for循环的一些疑问
     * @param args
     */
    public static void main(String[] args) {
        int i=0;
        for (testA('a');testA('b')&&(i<2);testA('c')) {
            i++;
            testA('d');
        }
    }
}

结果会是什么呢?答案是:abdcbdcb.


不知道与你们的结果是否一样,我看人家的解释用到java的反编译,搞得我也一头雾水.其实我们可以这样看把for循环变成for(int =1; i<10;i++){内部程序}的步骤来看,首先肯定是先执行int=1,然后执行判断,如果true就执行内部,然后执行i++,再进行判断.这样看起来就简单好多了.

你可能感兴趣的:(for循环的问题)