Bitte schreiben Sie auf, was dieser Code ausgibt?
/** * @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); } } }
Wenn man diese Frage sieht, werden viele Leute denken, dass sie zu einfach ist. Tatsächlich testet diese Frage drei Wissenspunkte:
for
循环do...while
循环break
🎜🎜第一个:4321
第二个:1232
第三个:2211
第四个:2222
你觉得是哪个?还是觉得都不是?
注意点
注意点1
do...while循环是while循环的变种,在检查条件是否为真之前,该循环其实已经执行过一次了,然后在检查条件是否为真,如果为true,就重复执行这个循环。注意:只要循环体中执行break
后也会结束循环。
注意点2
for(表达式1;表达式2;表达式3){
//循环体
}
Nach dem Login kopieren这个循环体执行步骤如下:
Der erste Schritt: Initialisierung ausführen: Ausdruck 1 (wird nur einmal ausgeführt)
Der zweite Schritt: Ausdruck 2 ausführen. Wenn das Ergebnis von Ausdruck 2 falsch ist, endet die Schleife, andernfalls wird der Schleifenkörper ausgeführt , Führen Sie dann Ausdruck 3 aus.
Schritt 3: Schleifenschritt 2. Wenn Sie wissen, dass das Ergebnis von Ausdruck 2 falsch ist, verlassen Sie die Schleife oder stoßen auf return
, break
Schlüsselwort. 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
Ontologieanalyse
Wenn Sie zum ersten Mal in den for-Schleifenkörper eintreten, ist i=4 und wird dann in den do...while-Schleifenkörper aufgenommen, zu diesem Zeitpunkt ist j=0, und dann wird diese Schleife weiter ausgeführt j++ bis j=2 oder Verlassen Sie den Schleifenkörper, wenn j>i zu diesem Zeitpunkt offensichtlich j=2 ist, das heißt, die Ausgabe zu diesem Zeitpunkt ist 2.
🎜Nächstes Mal in der for-Schleife Wenn i=3, ist die Ausgabe ebenfalls immer noch 2, 🎜🎜🎜🎜🎜
Die nächste for-Schleife, i=2, die gleiche Ausgabe ist immer noch 2, 🎜🎜🎜🎜🎜
Bei der nächsten Ausführung der for-Schleife ist i=1 und das Ausgabeergebnis ist ebenfalls 2. Zu diesem Zeitpunkt ist i – Die Operation der Foe-Schleife wird ausgeführt, i = 0, die Bedingung von i>0 ist nicht mehr erfüllt und die for-Schleife wird zu diesem Zeitpunkt beendet. 🎜🎜🎜🎜Das endgültige Ausgabeergebnis ist also: 2222
. 🎜🎜🎜Postscript🎜🎜 🎜🎜🎜Unterschätzen Sie die schriftlichen Testfragen vieler Unternehmen nicht, es gibt Fallstricke, in die Sie versehentlich hineinfallen können. Wenn Sie auf eine solche schriftliche Testfrage zu Zyklen stoßen, empfehle ich Ihnen, ruhig zu denken und Schritt für Schritt vorzugehen. 🎜🎜🎜🎜🎜Im schriftlichen Test gilt: Je scheinbar einfacher der Codeaspekt ist, desto weniger sollten Sie ihn auf die leichte Schulter nehmen. 🎜
Das obige ist der detaillierte Inhalt vonDie schriftlichen Testfragen von Ele.me scheinen einfach zu sein, aber sie verblüffen viele Leute. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!