이 코드가 무엇을 출력하는지 적어주세요.
/** * @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
루프
for
循环
do...while
循环
break
do...while
Loop
break
Exit저도 많은 분들께 물어봤는데 답변이 다 이상하네요.
4321
1232
2211
2222
你觉得是哪个?还是觉得都不是?
do...while循环是while循环的变种,在检查条件是否为真之前,该循环其实已经执行过一次了,然后在检查条件是否为真,如果为true,就重复执行这个循环。注意:只要循环体中执行break
后也会结束循环。
for(表达式1;表达式2;表达式3){ //循环体 }
这个循环体执行步骤如下:
return
,
break
키워드.
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
처음 for 루프 본문에 들어갈 때 i=4이고 이후 do...while 루프 본문에 포함되어 이때 j=0이 되며 이 루프가 계속 실행됩니다. j=2까지 j++ 또는 j>i일 때 루프 본문을 종료합니다. 이때 분명히 j=2, 즉 이때 출력은 2입니다.
다음번에는 for 루프 i=3이면 마찬가지로 출력은 여전히 2입니다.
다음 for 루프, i=2, 동일한 출력은 여전히 2입니다.
다음에 for 루프가 실행되면 i=1이 되고 마찬가지로 출력 결과는 2가 됩니다. 이때 i는 -- foe 루프의 연산이 실행되고, i =0이며, i>0 조건이 더 이상 충족되지 않으며, 이때 for 루프가 종료됩니다. 따라서 최종 출력 결과는 다음과 같습니다.2222
. Postscript 많은 회사의 필기 시험 문제에는 과소평가하지 마세요. 함정이 있고, 우연히 빠질 수도 있습니다. 이런 주기에 관한 필기시험 문제를 접하게 된다면 차분하게 생각하고 차근차근 풀어나가시길 권합니다. 필기 시험에서는 코드가 단순해 보일수록 가볍게 여겨서는 안 됩니다.
위 내용은 Ele.me의 필기 시험 문제는 간단해 보이지만 많은 사람들을 당황하게 합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!