операторы if / else только регистрируются - PullRequest
0 голосов
/ 02 января 2019

Я застрял на проблеме для моей домашней работы по кодированию. Вот оно:

  • Напишите цикл, который регистрирует " Marco !" когда я ровный,
  • " Polo !" когда я нечетный.
  • Не редактировать существующий код.
  • Подсказка 1: используйте оператор if / else
  • Подсказка 2: Google мод оператора (%)

Моя попытка

let x=11;
let y=4;
let i=x%y;

  if (i) {
 console.log("Marco!")
 }

  else  {
 console.log("Polo")
 }

Это регистрирует Марко, когда мне нужно войти в поло. Поэтому, продолжая пытаться решить эту проблему, я хотел посмотреть, как эксперты это сделают.

1 Ответ

0 голосов
/ 02 января 2019

Если вы хотите проверить, является ли число четным или нечетным, используйте оператор по модулю (%), который возвращает остаток от деления одного числа на другое. Вы должны изменить свою логику:

let x = 11;
let y = 4;
let i = x % y;

if (i % 2) {
  console.log("Polo!");
} else {
  console.log("Marco!");
}

console.log(i); //So you can see if the above works or not

Вот как это работает:

let i = x % y;

Что он делает, так это делит x на y (делит 11 на 4) и отнимает остаток - в этом случае остаток будет 3, поэтому i = 3.

Теперь вот немного хитрости. Если вы хотите узнать, является ли число четным, вы можете использовать % 2, что мы и делаем в операторе if. Если число четное, оно вернет 0, так как не будет остатка от деления на два. Это сложно, но я покажу тебе как смогу:

Если у нас есть 6 (мы знаем, что оно четное), и мы проверяем, является ли оно четным, путем деления его на 2, оно должно вернуть 0, так как остатка нет:

console.log(6 % 2);

И вот как работает наша логика в первом фрагменте, только она использует логические истинные и ложные значения. Ложные значения:

false
0
''
""
``
null
undefined
NaN

Таким образом, если i является четным, модуль вернет 0, что означает, что первый оператор if не будет выполнен, потому что i % 2 вернет 0, что оценивается как false, поэтому код будет запустите console.log("Marco!"), если i четное, но console.log("Polo!"), если i нечетное.

Дополнительное чтение:

...