Проверка двух истинных из трёх булевых в Java — пример программы

В этой задаче у нас есть три булевых переменных, и нужно определить, истинны ли минимум две из них. Если первая переменная истинна — достаточно, чтобы вторая ИЛИ третья были истинны. Если первая ложна — обе оставшиеся должны быть истинны.

Чтобы понять этот пример, нужно знать:

  • Условный оператор if...else

  • Тернарный оператор

Пример: проверка двух истинных значений из трёх

// Java Program to check if 2 variables
// among the 3 variables are true

import java.util.Scanner;

class Main {
  public static void main(String[] args) {

    // create 3 boolean variables
    boolean first;
    boolean second;
    boolean third;
    boolean result;

    // get boolean input from the user
    Scanner input = new Scanner(System.in);
    System.out.print("Enter first boolean value: ");
    first = input.nextBoolean();

    System.out.print("Enter second boolean value: ");
    second = input.nextBoolean();

    System.out.print("Enter third boolean value: ");
    third = input.nextBoolean();

    // check if two are true
    if(first) {

      // if first is true
      // and one of the second and third is true
      // result will be true
      result = second || third;
    }
    else {

      // if first is false
      // both the second and third should be true
      // so result will be true
      result = second && third;
    }

    if(result) {
      System.out.println("Two boolean variables are true.");
    }
    else {
      System.out.println("Two boolean variables are not true.");
    }

    input.close();
  }

}

Вывод 1:

Enter first boolean value: true
Enter second boolean value: false
Enter third boolean value: true
Two boolean variables are true.

Вывод 2:

Enter first boolean value: false
Enter second boolean value: true
Enter third boolean value: false
Two boolean variables are not true.

В этом примере у нас три булевых переменных first, second и third. Мы проверяем, истинны ли хотя бы две из них. Для этого используется конструкция if...else:

if(first) {
  result = second || third;
}
else {
  result = second && third;
}

Вместо if...else можно использовать тернарный оператор:

result = first ? second || third : second && third;

Совет

Тернарный оператор делает код короче, но в обучающих целях if...else нагляднее.