Estas expresiones son condiciones de prueba para una declaración condicional o un bucle. C ++ prefiere ‘==’ sobre ‘ & ‘ de acuerdo con las reglas de precedencia del operador. Ambas son las declaraciones condicionales. Veamos cómo funcionan estos.
(y & x == 0)
Esta declaración es básicamente una versión corta de ” y & (x == 0) “. Esta condición puede tener los siguientes casos:
- x = 0, y = 0 : x == 0 está marcado, x es igual a cero, por lo tanto, esta expresión da 1 ( Verdadero ) valor. Luego, y & (x == 0) se verifica (observe que x == 0 en sí mismo es un resultado, por lo que se verifica con y, y es 0 ( Falso ) yx == 0 es 1 ( Verdadero ), esto resulta en 0 ( Falso ). Por lo tanto, esta condición falla y su bloqueo no se ejecuta.
- x = + ve (suponga 1), y = 0 : x == 0 está marcado, x no es igual a cero, se evalúa como valor 0 (F). Luego, y & (x == 0) se verifica, y es 0 y ‘x == 0’ es 0, esto resulta en 0 ( Falso ). Por lo tanto, esta condición también falla y su bloqueo permanece sin ejecutar.
- x = 0, y = + ve (suponga 1) : x == 0 está marcado, x es igual a cero, se evalúa como valor 1 (T). Luego, se marca y & (x == 0), y es 1 yx == 0 es 1, esto resulta en 1 ( Verdadero ). Por lo tanto, finalmente se pasa esta condición y el código se ejecuta en este caso.
- x = + ve (suponga 1), y = + ve (suponga 1) : x == 0 está marcado, x no es igual a cero, se evalúa a 0 (F). Luego, se marca y & (x == 0), y es 1 yx == 0 es 0, esto resulta en 0 ( Falso ). Por lo tanto, nuevamente esta condición falla.
((y & x) == 0)
- Cómo mostrar [matemáticas] \ frac {1 + (\ csc x \ tan y) ^ 2} {1 + (\ csc z \ tan y) ^ 2} = \ frac {1 + (\ cot x \ sin y) ^ 2} {1 + (\ cot z \ sin y) ^ 2} [/ math]
- ¿Cómo se define un polinomio no constante?
- Cómo simplificar [matemáticas] \ frac {2k ^ 2-1} {4k ^ 2-1} [/ matemáticas] en fracción parcial
- Cómo probar [matemáticas] 1 + 2 + 3 + 4 +… = – \ tfrac {1} {12} [/ matemáticas] en una fiesta en términos simples
- Cómo simplificar 4 / t ^ 3 + 2t
Esta declaración es un poco diferente de la otra. Veamos estas declaraciones casos de trabajo:
- x = 0, y = 0 : en primer lugar, se evalúan y & x, tanto x como y son cero, por lo tanto, esto se evalúa como 0 ( F ). Luego se verifica si es igual a cero, esto es igual a cero, por lo que la expresión final se evalúa como 1 ( Verdadero ). Por lo tanto, esta condición ha pasado y su bloque se ejecuta.
- x = + ve (suponga 1), y = 0 : en primer lugar, y & x se evalúa, y es 0 yx es 1, por lo tanto, esto se evalúa como 0 ( F ). Luego, se verifica si es igual a cero, esto es igual a cero, por lo que la expresión final se evalúa como 1 ( Verdadero ). Por lo tanto, esta condición se pasa nuevamente y el código se ejecuta nuevamente.
- x = 0, y = + ve (suponga 1) : en primer lugar, y & x se evalúa, y es 1 yx es 0, por lo tanto, esto se evalúa como 0 ( F ). Luego, se verifica si es igual a cero, esto es igual a cero, por lo que la expresión final se evalúa como 1 ( Verdadero ). Por lo tanto, esta condición se pasa nuevamente y el código se ejecuta nuevamente.
- x = + ve (suponga 1), y = + ve (suponga 1) : en primer lugar, y & x está marcado, y es 1 yx es 1, esto se evalúa como 1 ( T ). Luego, se verifica si es igual a cero, esto no es igual a cero, por lo que la expresión final se evalúa a 0 ( Falso ). Por lo tanto, esta condición falla en este caso y el código permanece desde la ejecución.
Estas dos líneas de códigos se ven casi iguales pero son completamente diferentes. Uno es válido en 1 de cada 4 casos y otro en 3 de cada 4 casos. ¡Moraleja de la historia, los paréntesis importan en C ++!