Operaciones booleanas en Java "Suplemento de columna"

Hola, soy Yuechuang.

De hecho, después de aprender Python (en realidad no terminado, demasiados puntos de conocimiento, muchas bibliotecas), y luego en el pozo de Java (quien llama a la escuela para enseñar, para mantener los puntos de conocimiento al día y el desarrollo real, hay esta serie de notas), bien, no hagas tonterías más. ¡Empiece a tomar notas!

1. Operadores booleanos

Aquí enfatice que, de acuerdo con una experiencia de desarrollo senior real resultante de diez años de experiencia, se puede usar y, o, o el operador, para hacer uso de y, o, o , mirar las razones específicas del siguiente código:

/*
 * project = 'Java_Coder', file_name = '笔记', author = 'AI悦创'
 * time = '2020/5/8 下午6:15', product_name = IntelliJ IDEA, 公众号:AI悦创
 * code is far away from bugs with the god animal protecting
 *    I love animals. They taste delicious.
 */

public class notes {
    
    
	public static void main(String[] args){
    
    
		boolean a = true;
		boolean b = false;
		
		System.out.println(a & b); // & 且 (and)
		System.out.println(a && b); // &$ 且且 (andand)
		System.out.println(a | b); // | 或 (or)
		System.out.println(a || b); // | 或或 (oror)
		// 对比
		System.out.println(a || (10 / 0 > 1));
		System.out.println(a | (10 / 0 > 1));
	}
}

El código anterior, lo explicaremos parte por parte:

1.1 Primera parte

public class notes {
    
    
	public static void main(String[] args){
    
    
		boolean a = true;
		boolean b = false;
		
		System.out.println(a & b); // & 且 (and)
		System.out.println(a && b); // && 且且 (andand)
	}
}

La lógica de funcionamiento de a & b (ayb) es la siguiente:

  1. Primero verá un valor verdadero o falso, si a es falso, entonces el programa no continuará juzgando la autenticidad b - Devuelve: falso ;
  2. Si a es verdadero, continuará juzgando si b es verdadero o falso, y si el valor de b es verdadero, devolverá: verdadero , en caso contrario: falso ;
  3. En esta parte, el papel de && no es fácil de explicar, por lo que debe continuar buscando aquí.

Por lo tanto, los resultados anteriores son los siguientes:

false
false

1.2 Segunda parte

/*
 * project = 'Java_Coder', file_name = '笔记', author = 'AI悦创'
 * time = '2020/5/8 下午6:15', product_name = IntelliJ IDEA, 公众号:AI悦创
 * code is far away from bugs with the god animal protecting
 *    I love animals. They taste delicious.
 */

public class notes {
    
    
	public static void main(String[] args){
    
    
		boolean a = true;
		boolean b = false;
		
		System.out.println(a | b); // | 或 (or)
		System.out.println(a || b); // | 或或 (oror)
	}
}

La lógica de funcionamiento de a | b (a o b) es la siguiente:

  1. Primero determinará un verdadero o falso, si un juicio verdadero continuará siendo b verdadero y falso, b es verdadero devuelve los resultados - a verdadero , b es falso se devuelve - a verdadero ; (este lugar devolverá una advertencia , Este mensaje de advertencia, salida en la tercera parte de la siguiente demostración)
  2. Si a es falso, continuará juzgando si b es verdadero o falso Si b es verdadero, devolverá - verdadero , de lo contrario - falso ;

La lógica de funcionamiento de a || b (a oror b) es la siguiente:

  1. Primero determinará un verdadero y falso, y de hecho similar al anterior, pero más una función, es decir: si a es verdadero, el programa ya no juzgará b de verdadero y falso, de hecho, se optimiza aún más. (Aunque lo anterior a | b no tiene ningún efecto en el resultado, sería un desperdicio de recursos en ejecución ejecutar más cálculos)

En resumen: multipropósito ||en el desarrollo real ,&&

1.3 Tercera parte

De esta manera, la tercera parte del código es para que todos sepan más claramente que aparecerá una advertencia (aviso) en el resultado de la ejecución, el código es el siguiente:

public class notes {
    
    
	public static void main(String[] args){
    
    
		boolean a = true;
		boolean b = false;

		// 对比
		System.out.println(a || (10 / 0 > 1));
		System.out.println(a | (10 / 0 > 1));
	}
}

Podemos ejecutar el código anterior por separado para observar mejor el resultado:

public class notes {
    
    
	public static void main(String[] args){
    
    
		boolean a = true;
		boolean b = false;

		// 对比
		System.out.println(a | (10 / 0 > 1));
	}
}

resultado de la operación:

Exception in thread "main" java.lang.ArithmeticException: / by zero
	at BigNumber.main(BigNumber.java:14)

Aquí cambié deliberadamente el valor de b a un error (es decir, falso). Si el valor de b se establece en falso, no es una advertencia. La razón para cambiarlo a un error es demostrar que el programa ha juzgado que la posición de b es verdadera o falsa.

A continuación, echemos un vistazo nuevamente, el siguiente código:

public class BigNumber {
    
    
	public static void main(String[] args){
    
    
		boolean a = true;
		boolean b = false;
		
		// 对比
		System.out.println(a || (10 / 0 > 1));
	}
}

resultado de la operación:

true

A través de este ejemplo, entendería o o y y sería un poco específico.

1.4 Revisión

Mirando esto y esta vez, sabrá que si a es falso, no continuará juzgando si la posición b es verdadera o falsa.

/*
 * project = 'code005', file_name = 'BigNumber', author = 'AI悦创'
 * time = '2020/5/8 10:10', product_name = IntelliJ IDEA, 公众号:AI悦创
 * code is far away from bugs with the god animal protecting
 *    I love animals. They taste delicious.
 */

public class BigNumber {
    
    
	public static void main(String[] args){
    
    
		boolean a = false;
		boolean b = false;
		
		// 对比
		System.out.println(a && (10 / 0 > 1));
	}
}

resultado de la operación:

false

Si a es verdadero, continúe juzgando, el código es el siguiente:

public class BigNumber {
    
    
	public static void main(String[] args){
    
    
		boolean a = true;
		boolean b = false;
		
		// 对比
		System.out.println(a && (10 / 0 > 1));
		System.out.println("Is runing");
	}
}

resultado de la operación:

Exception in thread "main" java.lang.ArithmeticException: / by zero
	at BigNumber.main(BigNumber.java:14)

Si hay un programa ejecutándose después de esta salida, no generará:

public class BigNumber {
    
    
	public static void main(String[] args){
    
    
		boolean a = true;
		boolean b = false;
		
		// 对比
		System.out.println(a && (10 / 0 > 1));
		System.out.println("Is runing");
	}
}

resultado de la operación:

Exception in thread "main" java.lang.ArithmeticException: / by zero
	at BigNumber.main(BigNumber.java:14)

Supongo que te gusta

Origin blog.csdn.net/qq_33254766/article/details/108682947
Recomendado
Clasificación