Qu'est-ce que '? faire en C ++?
-
18-09-2019 - |
Question
int qempty()
{
return (f == r ? 1 : 0);
}
Dans l'extrait ci-dessus, ce qui signifie "? " signifie? Que pouvons-nous le remplacer?
La solution
Ceci est communément appelé le opérateur conditionnel et quand il est utilisé comme ceci:
condition ? result_if_true : result_if_false
... si le condition
évalue à true
, l'expression renvoie à result_if_true
, sinon il évalue à result_if_false
.
Il est le sucre syntaxique , et dans ce cas, il peut être remplacé par
int qempty()
{
if(f == r)
{
return 1;
}
else
{
return 0;
}
}
Remarque: Certaines personnes se réfèrent à ?:
comme « l'opérateur ternaire », car il est le seul opérateur ternaire (c.-à-opérateur qui prend trois arguments) dans la langue ils utilisent.
Autres conseils
Ceci est un opérateur ternaire, il est essentiellement une ligne instruction if
x ? y : z
fonctionne comme
if(x) y else z
sauf, au lieu des déclarations que vous avez des expressions; de sorte que vous pouvez l'utiliser au milieu d'une déclaration plus complexe.
Il est utile pour écrire du code succinct, mais peut être galvaudé pour créer dur pour maintenir le code.
Vous pouvez simplement réécrire comme:
int qempty(){ return(f==r);}
Ce qui fait la même chose que dit dans les autres réponses.
Il est appelé opérateur conditionnel .
Vous pouvez le remplacer par:
int qempty(){
if (f == r) return 1;
else return 0;
}
Il est l'opérateur conditionnel.
? b: c
Il est un raccourci pour IF / THEN / ELSE.
signifie: si une chose est vraie, le retour b, sinon retour c. Dans ce cas, si f == r, retour 1, sinon 0 retour.
Juste une note, si jamais vous voyez ceci:
a = x ? : y;
Il est une extension GNU à la norme (voir https: //gcc.gnu .org / onlinedocs / gcc / Conditionals.html # Conditionals ).
Il est le même que
a = x ? x : y;
La marque de question est l'opérateur conditionnel. Le code signifie que si f == r puis 1 est renvoyé, sinon, revenir 0. Le code peut être réécrit sous la forme
int qempty()
{
if(f==r)
return 1;
else
return 0;
}
ce qui est sans doute pas la plus propre façon de le faire, mais aide nous espérons votre compréhension.