Video: Week 1 2025
Her er en Java-gåde: Du har to baseballhold - Hankees and the Socks. Du vil vise holdets scorer på to separate linjer, med vinderens score først angivet. (På computerskærmen vises vinderens score over taberens score.) Hvad sker der, når scoresene er bundet?
Giver du op? Svaret er, der er ikke noget rigtigt svar. Hvad der sker, afhænger af, hvordan du skriver programmet. Når scorerne er ens, er tilstanden
hankees> sokker
false
. Så programmets gennemstrømningstrin falder ned til
else
-klausulen. Denne klausul viser Socks score først og Hankees scorer andet.
importjava. util. Scanner;
importer statisk java. Lang. System. i;
importer statisk java. Lang. System. ud;
classTwoTeams {
offentlig statisk tomgangshoved (String args []) {
Scannertastatur = ny scanner (i );
tænder, sokker;
ud. print ("Hankees and Socks scores?");
hankees = tastatur. nextInt ();
sokker = tastatur. nextInt ();
ud. println ();
hvis (hankees> sokker) {
ud. print ("Hankees:");
ud. println (hankees);
ud. print ("sokker:");
ud. println (sokker);
} ellers {
ud. print ("sokker:");
ud. println (sokker);
ud. print ("Hankees:");
ud. println (hankees);
}
tastatur. tæt();
}
}
Programmet behøver ikke at fungere på denne måde. Hvis du tager denne kode og ændrer
hankees> sokker
til
hankees> = sokker
, så kommer hankees scoringen først i tilfælde af et slips.
Antag at du vil have lidt mere kontrol. Når scorerne er ens, vil du se et
Det er et slips
besked. For at gøre dette skal du tænke på en trekantet gaffel. Du har en vinkel til en Hankees-vinde, en anden vinkel til en Socks-vinde og en tredje vinkel til et slips. Du kan skrive denne kode på flere forskellige måder, men en måde, der giver stor mening, er koden nedenfor.
importer java. util. Scanner;
importer statisk java. Lang. System. ud;
klasse WinLoseOrTie {
offentlig statisk tomgangshoved (String args []) {
Scannertastatur = ny scanner (System. In);
int hankees, sokker;
ud. print ("Hankees and Socks scores?");
hankees = tastatur. nextInt ();
sokker = tastatur. nextInt ();
ud. println ();
hvis (hankees> sokker) {
ud. println ("Hankees vinder …");
ud. print ("Hankees:");
ud. println (hankees);
ud. print ("sokker:");
ud. println (sokker);
} ellers hvis (sokker> hankees) {
ud.println ("Socks win …");
ud. print ("sokker:");
ud. println (sokker);
ud. print ("Hankees:");
ud. println (hankees);
} andet {
ud. println ("Det er et slips …");
ud. print ("Hankees:");
ud. println (hankees);
ud. print ("sokker:");
ud. println (sokker);
}
tastatur. tæt();
}
}
Denne kode illustrerer en måde at tænke på et problem. Du har et spørgsmål med mere end to svar. (Spørgsmålene er "Hvem vinder?" Og svarene er "Hankees", "Socks" eller "Neither.") Problemet ber om en if-sætning, men en
hvis
erklæring har kun to grene -
true
filialen og
false
filialen. Så du kombinerer alternativer til at danne cascading
hvis
erklæringer.
Her er formatet for cascading
hvis
erklæringer
hvis (Condition1) {
SomeStatements
} andet hvis Condition2) {
OtherStatements
} ellers {
EvenMoreStatements
}
Generelt kan du bruge
ellers hvis
så mange gange du vil:
hvis (hankeesWin) {
ud. println ("Hankees vinder …");
ud. print ("Hankees:");
ud. println (hankees);
ud. print ("sokker:");
ud. println (sokker);
} ellers hvis (sokkerWin) {
ud. println ("Socks win …");
ud. print ("sokker:");
ud. println (sokker);
ud. print ("Hankees:");
ud. println (hankees);
} ellers hvis (isATie) {
ud. println ("Det er et slips …");
ud. print ("Hankees:");
ud. println (hankees);
ud. print ("sokker:");
ud. println (sokker);
} ellers hvis (gameCancelled) {
ud. println ("Beklager, sports fans.");
} ellers {
ud. println ("Spillet er ikke overstået endnu.");
}
Intet er særligt om cascading
hvis
udsagn. Dette er ikke et nyt programmeringssprog. Cascading
hvis
udsagn udnytter et smuthul i Java - et smuthul om udeladelse af krøllede seler under visse omstændigheder. Bortset fra det, giver cascading
hvis
udsagn bare dig en ny måde at tænke på beslutninger i din kode.