int qempty()
{
return (f == r ? 1 : 0);
}
Dans l'extrait ci-dessus, que signifie " ?"? Par quoi pouvons-nous le remplacer ?
int qempty()
{
return (f == r ? 1 : 0);
}
Dans l'extrait ci-dessus, que signifie " ?"? Par quoi pouvons-nous le remplacer ?
C'est ce qu'on appelle communément le opérateur conditionnel et quand il est utilisé comme ça :
condition ? result_if_true : result_if_false
... si le condition
évalue à true
l'expression est évaluée à result_if_true
sinon, il est évalué à result_if_false
.
Il est sucre syntaxique et dans ce cas, il peut être remplacé par
int qempty()
{
if(f == r)
{
return 1;
}
else
{
return 0;
}
}
Note : Certaines personnes font référence à ?:
comme " l'opérateur ternaire ", car c'est le seul opérateur ternaire (c'est-à-dire un opérateur qui prend trois arguments) dans le langage qu'ils utilisent.
C'est un opérateur ternaire, c'est en fait une instruction if en ligne.
x ? y : z
fonctionne comme
if(x) y else z
sauf qu'au lieu de déclarations, vous avez des expressions ; vous pouvez donc l'utiliser au milieu d'une déclaration plus complexe.
Il est utile pour écrire un code succinct, mais peut être surutilisé pour créer un code difficile à maintenir.
Juste une note, si jamais tu vois ça :
a = x ? : y;
Il s'agit d'une extension GNU de la norme (voir https://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals ).
C'est la même chose que
a = x ? x : y;
On l'appelle le opérateur conditionnel .
Vous pouvez le remplacer par :
int qempty(){
if (f == r) return 1;
else return 0;
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.