Video: PHP for Web Development 2024
Dit is een Java-raadsel: je hebt twee honkbalteams - de Hankees en de Sokken. U wilt de scores van de teams weergeven op twee afzonderlijke regels, waarbij de score van de winnaar eerst wordt vermeld. (Op het computerscherm wordt de score van de winnaar boven de score van de verliezer weergegeven.) Wat gebeurt er als de scores gelijk zijn?
Geef je het op? Het antwoord is: er is geen goed antwoord. Wat er gebeurt, hangt af van de manier waarop je het programma schrijft. Als de scores gelijk zijn, is de voorwaarde
hankees> sokken
false
. De uitvoering van het programma loopt dus terug naar de
else
-clausule. Die clausule geeft de Socks-score als eerste weer en de Hankees scoren als tweede.
importjava. util. Scanner;
statische java importeren. Lang. Systeem. in;
statische java importeren. Lang. Systeem. uit;
classTwoTeams {
public static void main (String args []) {
Scannertoetsenbord = nieuwe scanner (in );
inthanksee, sokken;
uit. print ("Hankees and Socks scores?");
hankees = toetsenbord. nextInt ();
sokken = toetsenbord. nextInt ();
uit. println ();
als (hankees> sokken) {
uit. print ("Hankees:");
uit. println (hankees);
uit. print ("Sokken:");
uit. println (sokken);
} else {
uit. print ("Sokken:");
uit. println (sokken);
uit. print ("Hankees:");
uit. println (hankees);
}
toetsenbord. dichtbij();
}
}
Het programma hoeft niet zo te werken. Als u deze code neemt en
hankees> sokken
wijzigt in
hankees> = sokken
, komt de Hankeescore als eerste in een gelijkspel.
Stel dat u wat meer controle wilt. Wanneer de scores gelijk zijn, wil je een
Het is een gelijkspel
-bericht zien. Om dit te doen, denk in termen van een drievoudige vork. Je hebt een sleutel voor een overwinning van een Hankees, een andere grendel voor een Socks-overwinning en een derde grendel voor een gelijkspel. Je kunt deze code op verschillende manieren schrijven, maar een manier die veel logisch is, is de onderstaande code.
java importeren. util. Scanner;
statische java importeren. Lang. Systeem. uit;
klasse WinLoseOrTie {
public static void main (String args []) {
Scannertoetsenbord = nieuwe scanner (systeem. In);
int hankees, sokken;
uit. print ("Hankees and Socks scores?");
hankees = toetsenbord. nextInt ();
sokken = toetsenbord. nextInt ();
uit. println ();
als (hankees> sokken) {
uit. println ("Hankees winnen …");
uit. print ("Hankees:");
uit. println (hankees);
uit. print ("Sokken:");
uit. println (sokken);
} anders als (sokken> hankees) {
uit.println ("Socks win …");
uit. print ("Sokken:");
uit. println (sokken);
uit. print ("Hankees:");
uit. println (hankees);
} anders {
uit. println ("Het is een gelijkspel …");
uit. print ("Hankees:");
uit. println (hankees);
uit. print ("Sokken:");
uit. println (sokken);
}
toetsenbord. dichtbij();
}
}
Deze code illustreert een manier van denken over een probleem. U hebt één vraag met meer dan twee antwoorden. (De vraag is "Wie wint?" En de antwoorden zijn "Hankees", "Sokken" of "Geen van beide." Het probleem is een if-statement, maar een
if
-instructie heeft slechts twee takken - de
true
-tak en de
false
-tak. U combineert dus alternatieven om trapsgewijs
te vormen als
-instructies.
Hier is het formaat voor de trapsgewijze
if
statements
if (Condition1) {
SomeStatements
} else if (Condition2) {
OtherStatements
} else {
EvenMoreStatements
}
Over het algemeen kunt u
else if
zo vaak gebruiken als u wilt:
of (hankeesWin) {
uit. println ("Hankees winnen …");
uit. print ("Hankees:");
uit. println (hankees);
uit. print ("Sokken:");
uit. println (sokken);
} else if (socksWin) {
out. println ("Socks win …");
uit. print ("Sokken:");
uit. println (sokken);
uit. print ("Hankees:");
uit. println (hankees);
} else if (isATie) {
out. println ("Het is een gelijkspel …");
uit. print ("Hankees:");
uit. println (hankees);
uit. print ("Sokken:");
uit. println (sokken);
} else if (gameCancelled) {
uit. println ("sorry, sportfans.");
} else {
uit. println ("Het spel is nog niet afgelopen.");
}
Niets is zo bijzonder aan trapsgewijze
if
-instructies. Dit is geen nieuwe programmeertaalfunctie. Cascading
als
-instructies misbruik maken van een maas in Java - een maas in de wet over het weglaten van accolades in bepaalde omstandigheden. Daarnaast bieden cascading
if
-beweringen u een nieuwe manier om na te denken over beslissingen binnen uw code.