逻辑运算符

Java 中级

Jim White

Java Developer

AND、OR 和 NOT

  • 逻辑运算符用于在一条语句中组合多个条件
  • 三类主要运算符:
    • AND(与)
    • OR(或)
    • NOT(非)
Java 中级

AND(与)

  • 检查两个条件是否都为 true
boolean isLoggedIn = true;
boolean isAdmin = true;

// 两者都为 true
if (isLoggedIn && isAdmin) {
  System.out.println("Welcome admin!");
} else {
  System.out.println("You shall not pass.");
}
Welcome admin!
  • 只要有一个为 false,&& 返回 false
boolean isLoggedIn = false;
boolean isAdmin = true;

// 只有一个为 true,因此执行 else
if (isLoggedIn && isAdmin) {
  System.out.println("Welcome admin!");
} else {
  System.out.println("You shall not pass.");
}
You shall not pass.
Java 中级

OR(或)

  • 检查是否至少有一个条件为 true
boolean isAdmin = true;
boolean isModerator = false;

// 只有一个条件为 true
if (isAdmin || isModerator) {
  System.out.println("Welcome!");
} else {
  System.out.println("You shall not pass.");
}
Welcome!
  • 只要任一或两者为 true,结果为 true
boolean isAdmin = true;
boolean isModerator = true;

// 两个条件都为 true
if (isAdmin || isModerator) {
  System.out.println("Welcome!");
} else {
  System.out.println("You shall not pass.");
}
Welcome!
Java 中级

NOT(非)

  • true 变为 false,将 false 变为 true
boolean isLoggedIn = false;

// isLoggedIn 为 false,因此 !isLoggedIn 为 true
if (!isLoggedIn) {
    System.out.println("You need to log in!");
} else {
    System.out.println("You are logged in, continue!");
}
You need to log in!
Java 中级

逻辑运算符与 if-else if-else

int score = 90;
boolean isAttending = false;

if (score > 80 && isAttending) {
  System.out.println("Excellent work!");
} else if (score > 80 && !isAttending) {
  System.out.println("Good work, but attendance is important.");
} else if (score <= 80 && isAttending) {
  System.out.println("You need to work harder.");
} else {
  System.out.println("You need to work harder and attend classes.");
}
Good work, but attendance is important.
Java 中级

小结

下表总结了运算符 &&||! 的取值:

a b a && b a | | b !a
true true true true false
true false false true false
false true false true true
false false false false true
  • 逻辑运算符可用于布尔值,或结果为布尔值的表达式
boolean a = true && (!false || (true && false)); // a is true
boolean b = (7 <= 3) || (3 >= 5); // b is false
Java 中级

Vamos praticar!

Java 中级

Preparing Video For Download...