Java: Boolean operators 2

Logical operators - an important topic, so you should fix it with an additional example and exercise.

Let's try to implement a function that checks the year for leap year. A year will be a leap year, if it is a multiple of 400 or it is a multiple of 4 and not a multiple of 100. As you can see, the definition already contains all the necessary logic, it remains only to shift it to the code:

public static void main(String[] args) {
  isLeapYear(2018); // => false
  isLeapYear(2017); // => false
  isLeapYear(2016); // => true
}

public static boolean isLeapYear(int year) {
  return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
}

We will analyze in parts:

  • the first condition year % 400 == 0: the remainder of dividing by 400 is 0, then the number is a multiple of 400
  • || OR
  • the second condition (year % 4 == 0 && year % 100 != 0)
    • year % 4 == 0: the remainder of dividing by 4 is 0, so the number is a multiple of 4   - && ** and **
    • year % 100 != 0: the remainder of the division by 100 is not equal to 0, which means that the number is not a multiple of 100

Instructions

Write the function isNeutralSoldier, which takes two arguments as input:

  1. The color of the armor (string). The options are: "red", "yellow", "black".
  2. The color of the shield (string). The options are: "red", "yellow", "black".

The function returns true if the color of the armor is not red and the color of the shield is black. In other cases, it returns false.

Call examples:

isNeutralSoldier("yellow", "black"); // => true
isNeutralSoldier("red", "black");    // => false
isNeutralSoldier("red", "red");      // => false

If you got stuck and don't know what to do, you can ask a question in our huge and friendly community