Maison > Problème commun > le corps du texte

Qu'est-ce que l'opérateur ternaire

爱喝马黛茶的安东尼
Libérer: 2019-07-30 16:19:50
original
27346 Les gens l'ont consulté

Qu'est-ce que l'opérateur ternaire

Explication détaillée de l'opérateur ternaire

Pour certaines structures de branche de sélection, des opérateurs conditionnels simples peuvent être utilisés à la place . Par exemple :

if(a<b)
    min=a;
else
    min=b;
Copier après la connexion

peut être traité avec l'opérateur conditionnel suivant

min=(a<b)?a:b;
Copier après la connexion

où "(a

L'opérateur conditionnel se compose de deux symboles "?" et ":". Il nécessite trois objets opérationnels, c'est pourquoi il est également appelé opérateur ternaire. C'est le seul opérateur ternaire du langage C. opérateur.

Sa forme générale est :

表达式1?表达式2:表达式3;
Copier après la connexion

Voici quelques notes sur les opérateurs conditionnels :

(1) L'expression 1 est une relation expression ou expression logique, utilisée pour décrire des conditions, l'expression 2 et l'expression 3 peuvent être des constantes, des variables ou des expressions. Par exemple :

(x==y)?&#39;Y&#39;:&#39;N&#39;
(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)
ch=(ch>=&#39;A&#39;&&ch<=&#39;Z&#39;)?(ch+32):ch
Copier après la connexion

Les expressions ci-dessus sont toutes des expressions conditionnelles légales.

Recommandations associées : "FAQ"

(2) Ordre d'exécution : résolvez d'abord l'expression 1. Si la valeur est différente de 0, cela signifie la condition. est vrai. , puis recherchez l'expression 2. À ce stade, la valeur de l'expression 2 est utilisée comme valeur de l'expression conditionnelle entière

Si la valeur de l'expression 1 est 0, cela signifie que ; la condition est fausse, puis résolvez l'expression 3. La valeur de l'expression 3 est la valeur de l'expression conditionnelle entière. Par exemple :

(a>=0)?a:-a Le résultat de l'exécution est la valeur absolue de a

(3) Dans le programme, en mettant l'expression conditionnelle La valeur est affectée directement à une variable. Par exemple :

min=(a

(4) La priorité des expressions conditionnelles est seulement supérieure à l'opérateur d'affectation, mais inférieure à tous les opérateurs rencontrés précédemment.

Par conséquent, min=(a

(5 ) Condition Le sens de combinaison des opérateurs est "de droite à gauche".

(6) Les expressions conditionnelles peuvent être imbriquées, c'est-à-dire que l'expression 2 et l'expression 3 dans l'expression conditionnelle peuvent être une autre expression conditionnelle. Par exemple :

x>0?1:x<0?-1:0
Copier après la connexion

Dans l'expression conditionnelle ci-dessus, la 3ème partie de l'expression est une autre expression conditionnelle. Selon l'associativité de l'expression conditionnelle, l'expression conditionnelle ci-dessus équivaut à :

x>0?1:(x<0?-1:0)
Copier après la connexion

Sa fonction est de déterminer le signe de x. Lorsque x est un nombre positif, la valeur de l'expression conditionnelle est 1 ; lorsque x est un nombre négatif, la valeur de l'expression conditionnelle est -1 ; lorsque x est 0, la valeur de l'expression conditionnelle est 0.

(7) L'expression conditionnelle peut remplacer l'instruction if uniquement lorsque l'instruction intégrée dans l'instruction if est une instruction d'affectation (et que les deux branches attribuent des valeurs à la même variable). Par exemple :

if(a%2==0)
    printf("even/n");
else
    printf("odd/n");
Copier après la connexion

ne peut pas s'écrire comme :

(a%2==0)?printf("even/n"):printf("odd/n");
Copier après la connexion

mais il peut être remplacé par l'instruction suivante :

printf("%s/n",(a%2==0?"even":"odd");
Copier après la connexion

La fonction de cette instruction est : if a est un nombre pair, sortie paire ; Si a est un nombre impair, sortie impaire.

(8) Les types d'expression 1, expression 2 et expression 3 peuvent être différents. À l’heure actuelle, le type de valeur de l’expression conditionnelle est le type le plus élevé parmi eux. Par exemple :

main() {
    char c1, ch;
  ch = getchar();
  c1 = ch <= &#39;Z&#39; && ch >= &#39;A&#39; ? &#39; @ &#39; : ch ;
  putchar(c1);
}
Copier après la connexion

La fonction de ce programme est de saisir n'importe quel caractère à partir du clavier et de déterminer s'il s'agit de lettres majuscules. Si c'est le cas, affichez un @ ; , la ligne 6 du programme est l'instruction clé, cette instruction implémente le jugement, la sélection et le remplacement des caractères d'entrée.

Le processus d'exécution est le suivant : tout d'abord, l'opérateur conditionnel situé à droite du numéro d'affectation dans cette instruction juge et sélectionne les caractères d'entrée si ch>='A'&&ch<='Z' est vrai, expliquez que ch est une lettre anglaise majuscule, alors sélectionnez @ à ce moment-là ; sinon, sélectionnez toujours le caractère d'origine ch, puis attribuez le résultat sélectionné à la variable d'origine ch.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal