>  기사  >  Java  >  Ele.me의 필기 시험 문제는 간단해 보이지만 많은 사람들을 당황하게 합니다.

Ele.me의 필기 시험 문제는 간단해 보이지만 많은 사람들을 당황하게 합니다.

Java后端技术全栈
Java后端技术全栈앞으로
2023-08-24 15:29:412028검색


제목을 읽어주세요

이 코드가 무엇을 출력하는지 적어주세요.

/**
 * @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...whileLoop

🎜🎜breakExit🎜🎜🎜🎜저도 많은 분들께 물어봤는데 답변이 다 이상하네요. 🎜
  • 第一个:4321
  • 第二个:1232
  • 第三个:2211
  • 第四个:2222

你觉得是哪个?还是觉得都不是?

注意点

注意点1

do...while循环是while循环的变种,在检查条件是否为真之前,该循环其实已经执行过一次了,然后在检查条件是否为真,如果为true,就重复执行这个循环。注意:只要循环体中执行break后也会结束循环。

注意点2

for(表达式1;表达式2;表达式3){
//循环体
}

这个循环体执行步骤如下:

  • 1단계: 초기화 실행: 표현식 1(한 번만 실행됨)
  • 2단계: 표현식 2를 실행합니다. 표현식 2의 결과가 false이면 루프가 종료되고, 그렇지 않으면 루프 본문이 실행됩니다. 표현식 3을 실행합니다.
  • 3단계: 루프 2단계. 표현식 2의 결과가 false라는 것을 알게 되면 루프를 종료하거나 return, break 키워드. returnbreak关键字。

本体分析

  • 第一次进入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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 Java后端技术全栈에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제