Algorithmique et langage Java

Affecter une valeur sous condition : opérateur ?:

Créer et exécuter
package initial;
public class Choix {

	public static void main(String[] args) {
		ConsoleTexte mc=new ConsoleTexte();
		mc.ecritln("Quel est le symbole chimique de l'azote?");
		char t=mc.getChar();
		String s=(t=='N')?"exact":"mais non";
		mc.ecritln(s);
	}

}
La variable s prend soit la valeur "exact" soit la valeur "mais non", en fonction de la valeur de la variable logique (t=='N'), qui peut être true ou false.

L'opérateur comprend les deux signes "?" et ":" .
La syntaxe est de la forme : (valeur logique)?valeur1:valeur2

. Le résultat sera valeur1 si la valeur logique et vraie et valeur2 sinon.
valeur1 et valeur2 peuvent être de n'importe quel type et peuvent également être des noms de variables.
Le résultat s'utilise comme une variable du type de valeur1 ou valeur2.
Ainsi dans l'exemple précédent le résultat était de type String et on l'a affecté à une variable String. On aurait pu aussi l'utiliser dans une concaténation :

package initial;

public class Choix {

	public static void main(String[] args) {
		ConsoleTexte mc=new ConsoleTexte();
		mc.ecritln("Quel est le symbole chimique de l'azote?");
		char t=mc.getChar();
		mc.ecritln("Ta réponse est "+((t=='N')?"exacte":"fausse"));
	}

}
Autre exemple dans lequel la variable logique est le résultat d'une opération logique :
package initial;

public class Choix2 {

	public static void main(String[] args) {
		ConsoleTexte mc=new ConsoleTexte();
		mc.ecritln("Quelle est la dixième lettre de l'alphabet?");
		char t=mc.getChar();
		String resultat=((t=='j')||(t=='J'))?"exact":"faux";
		/ * L'opérateur logique || (ou) permet ici d'accepter
la bonne réponse écrite en minuscule ou en majuscule.*/
mc.ecritln(resultat); } }
 
Licence Creative Commons
licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé
Auteur : Nathalie Bonnin
Professeur de Physique, Chimie, Informatique au lycée La Martinière Monplaisir (Lyon 8ème)
Contact :
nathalie.bonnin (chez) scientillula.net
Licence Creative Commons
La totalité du contenu du site Scientillula.net appartient à Nathalie Bonnin et est mise à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé