int qempty()
{
return (f == r ? 1 : 0);
}
En el fragmento anterior, ¿qué significa " ? " ¿Con qué podemos reemplazarlo?
int qempty()
{
return (f == r ? 1 : 0);
}
En el fragmento anterior, ¿qué significa " ? " ¿Con qué podemos reemplazarlo?
Respuestas:
Esto se conoce comúnmente como el operador condicional , y cuando se usa así:
condition ? result_if_true : result_if_false
... si se condition
evalúa como true
, la expresión se evalúa como result_if_true
, de lo contrario, se evalúa como result_if_false
.
Es azúcar sintáctico , y en este caso, se puede reemplazar con
int qempty()
{
if(f == r)
{
return 1;
}
else
{
return 0;
}
}
Nota: Algunas personas se refieren a ?:
él como " el operador ternario ", porque es el único operador ternario (es decir, el operador que toma tres argumentos) en el idioma que están usando.
a? b : c
azúcar sintáctico para [&]() -> Type { if (a) return b; else return c; }()
.
Este es un operador ternario, es básicamente una declaración if en línea
x ? y : z
funciona como
if(x) y else z
excepto que, en lugar de declaraciones, tiene expresiones; para que pueda usarlo en medio de una declaración más compleja.
Es útil para escribir código sucinto, pero puede usarse en exceso para crear código difícil de mantener.
Puedes reescribirlo como:
int qempty(){ return(f==r);}
Que hace lo mismo que se dice en las otras respuestas.
Solo una nota, si alguna vez ves esto:
a = x ? : y;
Es una extensión GNU del estándar (consulte https://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals ).
Es lo mismo que
a = x ? x : y;
x = 1+1 ? : 0
; devuelve correctamente 2
, en mi compilador y esto no se quejó de nada.
Se llama operador condicional .
Puede reemplazarlo con:
int qempty(){
if (f == r) return 1;
else return 0;
}
El signo de interrogación es el operador condicional. El código significa que si f == r entonces se devuelve 1, de lo contrario, se devuelve 0. El código podría reescribirse como
int qempty()
{
if(f==r)
return 1;
else
return 0;
}
que probablemente no sea la forma más limpia de hacerlo, pero con suerte ayudará a su comprensión.