Vidéo: Formulaire d'inscription Web contrôlé en Javascript 2024
Voici une énigme Java: Vous avez deux équipes de baseball - les Hankees et les Socks. Vous souhaitez afficher les scores des équipes sur deux lignes distinctes, le score du vainqueur apparaissant en premier. (Sur l'écran de l'ordinateur, le score du gagnant est affiché au-dessus du score du perdant.) Que se passe-t-il lorsque les scores sont liés?
Abandonnez-vous? La réponse est, il n'y a pas de bonne réponse. Ce qui se passe dépend de la façon dont vous écrivez le programme. Lorsque les scores sont égaux, la condition
hankees> chaussettes
est
false
. Ainsi, le flux d'exécution du programme tombe à la clause
else
. Cette clause affiche le score Socks en premier et le score de Hankees en second.
importjava. util. Scanner;
importer du java statique. lang. Système. dans;
importer du java statique. lang. Système. en dehors;
classTwoTeams {
public static void principal (String args []) {
Clavier du scanner = nouveau scanner (dans );
inthankees, chaussettes;
sortie. print ("scores de Hankees et de chaussettes?");
hankees = clavier. nextInt ();
chaussettes = clavier. nextInt ();
sorti. println ();
si (hankees> chaussettes) {
out. imprimer ("Hankees:");
sorti. println (hankees);
sorti. print ("Chaussettes:");
sur. println (chaussettes);
} else {
out. print ("Chaussettes:");
sorti. println (chaussettes);
sorti. imprimer ("Hankees:");
sorti. println (hankees);
}
clavier. Fermer();
}
}
Le programme n'a pas besoin de fonctionner de cette façon. Si vous prenez ce code et changez
hankees> chaussettes
en
hankees> = chaussettes
, alors, en cas d'égalité, le score de Hankees vient en premier.
Supposons que vous vouliez un peu plus de contrôle. Lorsque les scores sont égaux, vous voulez voir un message
C'est un lien
. Pour ce faire, pensez en termes d'une fourchette à trois dents. Vous avez une chance pour une victoire Hankees, une autre pour une victoire Socks, et une troisième broche pour une cravate. Vous pouvez écrire ce code de plusieurs manières différentes, mais le code ci-dessous est très sensé.
importer java. util. Scanner;
importer du java statique. lang. Système. en dehors;
class WinLoseOrTie {
public static void principal (String args []) {
Clavier du scanner = nouveau Scanner (System.
int hankees, chaussettes;
sorti. print ("scores de Hankees et de chaussettes?");
hankees = clavier. nextInt ();
chaussettes = clavier. nextInt ();
sorti. println ();
si (hankees> chaussettes) {
out. println ("Les Hankees gagnent …");
sorti. imprimer ("Hankees:");
sorti. println (hankees);
sorti. print ("Chaussettes:");
sorti. println (chaussettes);
} sinon si (chaussettes> hankees) {
out.println ("Les chaussettes gagnent …");
sorti. print ("Chaussettes:");
sorti. println (chaussettes);
sorti. imprimer ("Hankees:");
sortie. println (hankees);
} sinon {
sur. println ("C'est une cravate …");
sorti. imprimer ("Hankees:");
sorti. println (hankees);
sorti. print ("Chaussettes:");
sorti. println (chaussettes);
}
clavier. Fermer();
}
}
Ce code illustre une façon de penser à un problème. Vous avez une question avec plus de deux réponses. (La question est "Qui gagne?" Et les réponses sont "Hankees", "Socks" ou "Ni".) Le problème demande une instruction if, mais une instruction
si
n'a que deux branches - la branche
true
et la branche
false
. Vous combinez donc des alternatives aux instructions en cascade
si
.
Ici, le format pour les instructions en cascade
si
est
si (Condition1) {
SomeStatements
} sinon if (Condition2) {
OtherStatements
} else {
EvenMoreStatements
}
En général, vous pouvez utiliser
else if
autant de fois que vous le souhaitez:
si (hankeesWin) {
out. println ("Les Hankees gagnent …");
sorti. imprimer ("Hankees:");
sorti. println (hankees);
sorti. print ("Chaussettes:");
sorti. println (chaussettes);
} sinon (socksWin) {
out. println ("Les chaussettes gagnent …");
sur. print ("Chaussettes:");
sorti. println (chaussettes);
sorti. imprimer ("Hankees:");
sortie. println (hankees);
} else si (isATie) {
out. println ("C'est une cravate …");
sorti. imprimer ("Hankees:");
sorti. println (hankees);
sorti. print ("Chaussettes:");
sorti. println (chaussettes);
} else if (gameCancelled) {
sortie. println ("Désolé, les fans de sport.");
} else {
out. println ("Le jeu n'est pas encore terminé.");
}
Rien n'est spécial à propos des instructions en cascade
si
. Ce n'est pas une nouvelle fonctionnalité de langage de programmation. Les déclarations en cascade
si
profitent d'une faille dans Java - une échappatoire à l'omission des accolades dans certaines circonstances. En dehors de cela, des instructions en cascade
si
vous donnent simplement une nouvelle façon de penser aux décisions dans votre code.