Conceptos básicos de Java: operadores condicionales

El artículo anterior cubrió los operadores de comparación, y este artículo cubre los operadores condicionales.

descripción general

Los operadores condicionales son como tomamos decisiones en la vida real, controlan el flujo del programa y producen resultados basados ​​en las condiciones proporcionadas.

Hay tres tipos de operadores condicionales, a saber, condicional y, condicional o y operador ternario, comprendamos cómo se usan estos operadores condicionales en Java.

Los siguientes operadores se proporcionan como operadores condicionales cuyos operandos toman valores de tipo booleano:

operador ejemplo de entrada explicar
&& x & & y Devuelve verdadero si tanto x como y son verdaderos.
|| x || es Devuelve verdadero si x o y es verdadero.
& x&y Devuelve verdadero si tanto x como y son booleanos y ambos son verdaderos. Si ambas variables son de tipo entero, se realiza una operación AND bit a bit.
| x | y Devuelve verdadero si x e y son ambos valores booleanos y uno de ellos es verdadero. Si ambas variables son de tipo entero, se realiza una operación OR bit a bit.
^ x^y Devuelve verdadero si tanto x como y son valores booleanos y x e y son valores distintos. Si ambas variables son de tipo entero, se realiza una operación XOR bit a bit.
!X Devuelve verdadero si x es falso.

Ejemplo de código:

package com.test.javaroads.operator;

/**
 * @author: javaroads
 * @date: 2022/12/4 17:43
 * @description:
 */
public class Seven {

    public static void main(String[] args) {
        int a = 0;
        int b = 0;

        if ((!(a > 0)) && (!(b > 0))) {
            a = 10;
            b = 20;
        }

        if ((a > 15) ^ (b > 15)) {
            System.out.println("运算符 = 成立。");
        } else {
            System.out.println("运算符 = 不成立。");
        }
    }
}

Resultados de la:

Descripción del código:

  • La expresión dentro del bloque if se ejecuta si tanto (!(a > 0)) como (!(b > 0)) son verdaderos. Dado que ni a ni b son mayores que 0 (a > 0), (b > 0) devuelve falso y el operador ! devuelve tanto (!(a > 0)) como (!(b > 0)) se consideran verdaderos
  • La expresión dentro del bloque if se ejecuta si (a > 15) o (b > 15) es verdadera. (a > 15) devuelve falso y (b > 15) devuelve verdadero, por lo que ambos son verdaderos.

La diferencia entre &&, || y &, |

Los operadores en &&, || y &, | tienen el mismo significado, pero su comportamiento es significativamente diferente. & devuelve verdadero si los operandos izquierdo y derecho son verdaderos, y devuelve falso si el operando izquierdo es falso, independientemente de si el operando derecho es verdadero o falso. && devuelve falso sin ejecutar el operando derecho si el operando izquierdo es falso, y devuelve falso después de ejecutar el operando derecho si el operando izquierdo es falso.

|| y | devuelven verdadero si el operando de la izquierda o el de la derecha es verdadero, lo que significa que si el operando de la izquierda es verdadero, devuelve verdadero sin importar si el operando de la derecha es verdadero o falso. || Si el operando de la izquierda es verdadero, devuelve verdadero sin ejecutar el operando de la derecha. | Devuelve verdadero después de ejecutar el operando derecho si el operando izquierdo es verdadero.

La diferencia de comportamiento entre &&, || y &, | es si ejecutar el operando derecho cuando el resultado general de la ejecución solo puede determinarse por el resultado del operando izquierdo. Debido a estas propiedades, los operadores && y || también se conocen como operadores de cortocircuito .

Si solo se juzga verdadero o falso, no hay diferencia en el resultado de la ejecución sin importar qué operador se use, pero al realizar algún procesamiento en el operando correcto, debe prestar atención a la diferencia en el comportamiento.

¡Echemos un vistazo al código de abajo!

package com.test.javaroads.operator;

/**
 * @author: javaroads
 * @date: 2022/12/4 17:51
 * @description:
 */
public class Eight {

    public static void main(String[] args) {
        int a = 5;
        if (a > 0 || (a *= 10) > 100) {
            System.out.println("a是" + a);
        }

        int b = 5;
        if (b > 0 | (b *= 10) > 100) {
            System.out.println("b是" + b);
        }
    }
}

Resultados de la:

Explicación del código:

  • Para el operador ||, si el operando izquierdo es verdadero, el operando derecho no se ejecuta. , el operando de la derecha, que multiplica la variable a por 10, no se procesa cuando se ejecuta la instrucción println porque el operando de la izquierda es verdadero.
  • Para el operador |, el operando derecho se ejecuta incluso si el operando izquierdo es verdadero. Multiplique la variable b del operando derecho por 10 y ejecute la sentencia println.

Supongo que te gusta

Origin blog.csdn.net/weixin_43025343/article/details/132236173
Recomendado
Clasificación