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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© guoqiangmailbox 中级黑马   /  2015-5-15 16:02  /  225 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天遇到一题目:
[url=][/url]
public class Test {    public static boolean p(char a){        System.out.println(a);        return true;    }        public static void main(String[] args) {        int i = 0;        for(p('a'); p('b') && i < 2; p('c')){            i ++;            System.out.println('d');        }    }}[url=][/url]

运行结果:() A、abdcbdcb  B、abcdbcdb  C、编译出错  D、运行出错

当时我的想法是:for(初始化; 判断条件; 更新变量){}
上面的试题没有在位置上初始化,更新变量,我就选择了C。
回来测试后发现,语法完全没有问题,只要在for循环里出现了";"就可以视为表达式的分割符。也就是说只要有分割符不写东西也是可以编译通过的,如:for(;;){},不过是个死循环。
编译没错,那运行结果呢?肯定也是跟for循环一样的执行顺序。
遇到问题解决了就是进步,继续努力吧!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马