请写出写明这段代码输出什么?
/**
* @author 面试专栏
* @date 2021/7/11 13:57
*/
public class Test1 {
public static void main(String[] args) {
//输出什么?
test();
}
public static void test() {
for (int i = 4; i > 0; i--) {
int j = 0;
do {
j++;
if (j == 2) {
break;
}
} while (j <= i);
System.out.print(j);
}
}
}看到这道题,很多人会觉得太简单了。其实这道题考察三个知识点;
for循环do...while循环break退出千万别小看,我也询问过很多人,答案千奇百怪的,出现最多的答案有四个:
4321123222112222你觉得是哪个?还是觉得都不是?
do...while循环是while循环的变种,在检查条件是否为真之前,该循环其实已经执行过一次了,然后在检查条件是否为真,如果为true,就重复执行这个循环。注意:只要循环体中执行break后也会结束循环。
for(表达式1;表达式2;表达式3){
//循环体
}这个循环体执行步骤如下:
return、break关键字。第一次进入for循环体时,i=4,然后计入do...while循环体,此时j=0,然后这个循环一直执行j++,直到j=2或者j>i的时候退出循环体,显然此时j=2,也就是此时输出的是2。
下一次for循环时,i=3,同理输出还是2,
下一次for循环时,i=2,同理输出依然是2,
下一次for循环时,i=1,同理输出结果是2,此时执行foe循环的i--操作,i=0,不满足i>0的条件了,此时for循环退出。
所以,最后输出结果为:2222。
在很多公司的笔试题中,千万别小看,都是有坑的,一不小心自己就掉进去了。遇到这种关于循环的笔试题,建议,自己冷静思考,一步一步来。
在笔试中,代码这块,越是看起来简单的题目,越不能掉以轻心。
以上就是饿了么笔试题,看似简单,难倒一批人的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号