Maison  >  Article  >  Java  >  Les questions du test écrit d'Ele.me semblent simples, mais elles déconcertent beaucoup de gens

Les questions du test écrit d'Ele.me semblent simples, mais elles déconcertent beaucoup de gens

Java后端技术全栈
Java后端技术全栈avant
2023-08-24 15:29:411863parcourir


Veuillez lire le titre

Veuillez noter ce que ce code génère ?

/**
 * @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);
        }
    }
}

En voyant cette question, beaucoup de gens penseront que c'est trop simple. En fait, cette question teste trois points de connaissance 

  • for boucle for循环
  • do...while循环
  • break
faire... pendant que Boucle

🎜🎜pauseSortie🎜🎜🎜🎜Ne le sous-estimez pas. J'ai également demandé à beaucoup de gens, et les réponses sont toutes étranges. Il y a quatre réponses qui apparaissent le plus : 🎜.
  • 第一个:4321
  • 第二个:1232
  • 第三个:2211
  • 第四个:2222

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

注意点

注意点1

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

注意点2

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

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

  • La première étape : exécuter l'initialisation : expression 1 (ne sera exécutée qu'une seule fois)
  • La deuxième étape : exécuter l'expression 2. Si le résultat de l'expression 2 est faux, la boucle se termine, sinon le corps de la boucle est exécuté , Puis exécutez l'expression 3.
  • Étape 3 : Bouclez l'étape 2. Lorsque vous savez que le résultat de l'expression 2 est faux, quittez la boucle ou rencontrez return, break mot-clé. 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

Analyse d'ontologie

Lorsque vous entrez dans le corps de la boucle for pour la première fois, i=4, puis inclus dans le corps de la boucle do...while, j=0 à ce moment, puis cette boucle continue de s'exécuter j++ jusqu'à j=2 ou Quittez le corps de la boucle lorsque j>i Évidemment j=2 à ce moment, c'est-à-dire que la sortie à ce moment est 2.

🎜

La prochaine fois dans le for boucle Quand, i=3, de même, la sortie est toujours 2, 🎜🎜🎜🎜🎜

La prochaine boucle for, i=2, la même sortie est toujours 2, 🎜🎜🎜🎜🎜

La prochaine fois que la boucle for est exécutée, i=1, et de même, le résultat de sortie est 2. À ce moment, le i -- l'opération de la boucle ennemie est exécutée, i = 0, la condition i>0 n'est plus remplie et la boucle for se termine à ce moment. 🎜🎜🎜🎜Donc, le résultat final est : 2222. 🎜🎜🎜Postscript🎜🎜 🎜🎜🎜Dans les questions des tests écrits de nombreuses entreprises, ne les sous-estimez pas, il y a des pièges et vous pouvez y tomber accidentellement. Lorsque vous rencontrez ce genre de question de test écrit sur les cycles, je vous suggère de réfléchir calmement et de procéder étape par étape. 🎜🎜🎜🎜🎜Dans l'épreuve écrite, plus le code semble simple, moins vous devez le prendre à la légère. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer