Dies ist eine überarbeitete Version meiner previous Frage.Inkonsistenz mit anderen Aussagen?
Wenn ich else-if als Abkürzung benutze, bin ich mir nicht ganz sicher, warum, Syntax weise, es führt die gleiche Funktionalität wie verschachteln if-else-Anweisungen. Angenommen, Sie haben die folgende:
int score = 80;
if(score < 80) {
System.out.println("C Grade");
} else if(score < 90) {
System.out.println("B Grade");
} else if(score < 100) {
System.out.println("A Grade");
}
Wenn ich eine Vertiefung hinzufügen, bekomme ich etwas ähnliches wie:
if(score < 80) {
System.out.println("C Grade");
} else
if(score < 90) {
System.out.println("B Grade");
} else
if(score < 100) {
System.out.println("A Grade");
}
Dies wertet die gleiche wie if-else-Anweisungen als solche verschachtelt Schreiben:
if(score < 80) {
System.out.println("C Grade");
} else {
if(score < 90) {
System.out.println("B Grade");
} else {
if(score < 100) {
System.out.println("A Grade");
}
}
}
Ich sehe jedoch einen großen Unterschied. Im dritten Code-Snippet hat die "else" -Anweisung Klammern, und die verbleibenden if-else-Anweisungen sind innerhalb dieser Klammern verschachtelt. Im ersten Szenario gibt es keine einkapselnden Klammern. Also warum funktioniert die erste Idee von else-if-work, wenn ich scheinbar Klammern bei der Verschachtelung von if-else-Anweisungen brauche? Ich dachte, dass ein Mangel an Konsolen mit Steuerflussanweisungen wie if, else, während usw. bewirken, dass die Compiler nur die folgende Zeile zu bewerten, wie zum Beispiel:
if(condition)
System.out.println("A");
System.out.println("B");
//only prints "A"
else-if in Java verhält sich wie sonst gefolgt von if - intensionally. Das Fehlen von Klammern bewertet NICHT die folgende Zeile, sondern die folgende Aussage. Da if (oder if else) eine Aussage ist, ist es ziemlich konsistent. – CoronA
Ein Tipp, wenn Sie Fragen stellen - Behauptungen in Ihrem Titel zu machen (wie das Setzen, dass "else" Aussagen inkonsistent sind) wird zu downvotes führen, da Leute eher Ihrer Behauptung widersprechen als versuchen, Ihnen zu helfen. Konzentriere dich stattdessen darauf, was du wirklich fragst, z. "Können Sie mir helfen, die Syntax von' else if'-Anweisungen zu verstehen? " Das wird eher zu Hilfe als zu Downvotes führen. – dimo414