Video: Technology Stacks - Computer Science for Business Leaders 2016 2025
Her er en Java-gåte: Du har to baseballlag - Hankees and the Socks. Du vil vise lagets poengsum på to separate linjer, med vinneren sin score først oppført. (På dataskjermen vises vinnerens poengsum over taperens poengsum.) Hva skjer når poengene er bundet?
Gi du opp? Svaret er, det er ikke noe riktig svar. Hva skjer avhenger av måten du skriver programmet på. Når poengene er like, er tilstanden
hankees> sokker
false
. Så faller programmets gjennomføringsstrøm ned til
else
-klausulen. Denne klausulen viser Socks-poengsummen først og Hankees scorer andre.
importjava. util. Scanner;
importer statisk java. Lang. System. i;
importer statisk java. Lang. System. ute;
classTwoTeams {
offentlig statisk tomgangshoved (String args []) {
Skannertastatur = ny skanner (i );
tanker, sokker;
ut. print ("Hankees and Socks scores?");
hankees = tastatur. nextInt ();
sokker = tastatur. nextInt ();
ut. println ();
hvis (hankees> sokker) {
ut. skriv ut ("Hankees:");
ut. println (hankees);
ut. skriv ut ("Sokker:");
ut. println (sokker);
} annet {
ut. skriv ut ("Sokker:");
ut. println (sokker);
ut. skriv ut ("Hankees:");
ut. println (hankees);
}
tastatur. Lukk();
}
}
Programmet trenger ikke å fungere på denne måten. Hvis du tar denne koden og endrer
hankees> sokker
til
hankees> = sokker
, så kommer hankees-poengsummen først til å bli slått.
Anta at du vil ha litt mer kontroll. Når poengene er like, vil du se en
Det er et slips
melding. For å gjøre dette, tenk i form av en trekantet gaffel. Du har en vinkel for en Hankees-vinn, en annen prong for en Socks-vinn, og en tredje prong for et slips. Du kan skrive denne koden på flere forskjellige måter, men en måte som gir mye mening er koden nedenfor.
importer java. util. Scanner;
importer statisk java. Lang. System. ute;
klasse WinLoseOrTie {
statisk statisk tomt hoved (String args []) {
Skannertastatur = ny skanner (System. In);
int hankees, sokker;
ut. print ("Hankees and Socks scores?");
hankees = tastatur. nextInt ();
sokker = tastatur. nextInt ();
ut. println ();
hvis (hankees> sokker) {
ut. println ("Hankees vinner …");
ut. skriv ut ("Hankees:");
ut. println (hankees);
ut. skriv ut ("Sokker:");
ut. println (sokker);
} annet hvis (sokker> hankees) {
ut.println ("Socks win …");
ut. skriv ut ("Sokker:");
ut. println (sokker);
ut. skriv ut ("Hankees:");
ut. println (hankees);
} ellers {
ut. println ("Det er et slips …");
ut. skriv ut ("Hankees:");
ut. println (hankees);
ut. skriv ut ("Sokker:");
ut. println (sokker);
}
tastatur. Lukk();
}
}
Denne koden illustrerer en måte å tenke på et problem. Du har ett spørsmål med mer enn to svar. (Spørsmålet er "Hvem vinner?" Og svarene er "Hankees", "Socks", eller "Neither.") Problemet ber om en if-setning, men en
hvis
erklæring har bare to grener -
true
grenen og
false
grenen. Så du kombinerer alternativer for å danne cascading
hvis
uttalelser.
Her er formatet for cascading
hvis
erklæringer
hvis (Tilstand1) {
SomeStatements
} annet hvis Condition2) {
OtherStatements
} ellers {
EvenMoreStatements
}
Generelt kan du bruke
annet hvis
så mange ganger du vil:
dersom (hankeesWin) {
ut. println ("Hankees vinner …");
ut. skriv ut ("Hankees:");
ut. println (hankees);
ut. skriv ut ("Sokker:");
ut. println (sokker);
} annet hvis (sokkerWin) {
ut. println ("Socks win …");
ut. skriv ut ("Sokker:");
ut. println (sokker);
ut. skriv ut ("Hankees:");
ut. println (hankees);
} annet hvis (isATie) {
ut. println ("Det er et slips …");
ut. skriv ut ("Hankees:");
ut. println (hankees);
ut. skriv ut ("Sokker:");
ut. println (sokker);
} annet hvis (gameCancelled) {
ut. println ("Beklager, sports fans.");
} annet {
ut. println ("Spillet er ikke over ennå.");
}
Ingenting er spesielt med cascading
hvis
uttalelser. Dette er ikke et nytt programmeringsspråkfunksjon. Cascading
hvis
erklæringer utnytter et smutthull i Java - et smutthull om å utelate krøllete bånd i visse tilfeller. Annet enn det, som gir
hvis
erklæringer, gir deg bare en ny måte å tenke på beslutninger i koden din.
