я хочу понять код, который я показываю для заявления возврата Java - PullRequest
0 голосов
/ 11 июля 2019

Этот вопрос я нашел на своей работе в классе и запутался

Я ничего не пробовал

public static String evenOrOdd(int num) {
    return num%2==0?"Even":"Odd";
}

Код работает нормально;Я просто хочу знать, как это работает.

Ответы [ 4 ]

2 голосов
/ 11 июля 2019

Тернарный оператор аналогичен оператору if else.

if (num % 2 == 0) {
 return "Even";
} else {
 return "Odd";
}

Если часть до отметки ? равна true, то вы получите результат до :.Если false, то после :

2 голосов
/ 11 июля 2019

Это в основном оператор if else.

Если условие истинно, возвращается первый вариант. Если нет (если оно ложно), будет возвращено второе:

num%2==0?"Even":"Odd";

Если num%2==0, то это Even. Если нет, то это Odd.

Это однострочник для:

if(num%2==0) return "Even";
else return "Odd";
1 голос
/ 11 июля 2019

Это называется троичным оператором, и его логика работает следующим образом

a question ? positive answer : negative answer

или, используя более формальные термины

boolean expression ? return value for true : return value for false 

Итак, ваш вопрос о num % 2 == 0, что означаетесли остаток от num, деленный на два, равен нулю.Если это так - это четное число, если нет - это нечетное число, и поэтому возвращается соответствующее строковое значение.

1 голос
/ 11 июля 2019

ищите троичный оператор, приведенный выше код в краткой форме

public static String evenOrOdd(int num) {
    if(num%2==0){
      return "even";
    }else{
      return "Odd";
    }
  }
...