Использование оператора Mod. Я написал скрипт для чтения целого числа и отображения четного или нечетного числа

#javascript

#javascript

Вопрос:

Это мой первый оператор mod. Что я сделал до сих пор, так это объявил и инициализировал переменную и проанализировал строку до целого числа. Я использовал операторы if, чтобы определить, является ли остаток четным или нечетным числом. Затем я использовал document.write для отображения выходных данных для каждого оператора if.

Но вывод не отображается в браузере. Сообщение консоли ошибок заключается в том, что у меня неверное назначение с левой стороны. Я попытался переключить левую часть на правую, но ошибка по-прежнему недопустима с левой стороны.

Другое дело, что я не уверен, следует ли мне использовать синтаксический анализ, поскольку я прочитал, что оператор mod пытается преобразовать строку в число. Но я немного запутался в этом.

В любом случае, вот код: есть предложения?

 <?xml version ="1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1   /DTD/xhtml1-strict.dtd">
<html xmlns - "http://www.w3.org/1999/xhtml>
<html>
<head> 

<script type="text/javascript">
 //Declare variables

 var num = 18;

 //converts to integer
 num = parseInt(num);

 //write to output
 if(num % 6 = 0){
 document.write(%   "<h2> is an even number</h2>");
 }
 if(num % 6 != 0){
 document.write(%   "<h2> is a odd number</h2>");
 }

 //end if


 </script>

 </head>
 <body>
  

Комментарии:

1. Мне нравится ваш ответ. Единственная причина, по которой я использовал document.write, заключается в том, что я думал, что единственными другими способами вывода были alert или message. Но я учусь. Я все еще пытаюсь понять концепцию этого оператора Mod. Мне просто не кажется логичным не использовать оператор присваивания. Но это было из-за оператора присваивания, я получал ошибку.

Ответ №1:

Что вы пытаетесь сделать с

 document.write(%   "<h2> is an even number</h2>")
  

% "some string" недопустимый Javascript.

Кроме того, как говорили другие, вам нужно num % 2 == 0 (измените 6 на 2 и убедитесь, что у вас есть два знака =).

Ответ №2:

Кратчайший способ его записи был бы:

document.write("<h2> is an " (num % 2 ? "odd" : "even") " number</h2>");

[РЕДАКТИРОВАТЬ] Исходное решение не работает, потому что для проверки равенства используется только один «=». В Javascript вы должны использовать либо «==» (свободное равенство), либо «===» строгое равенство.

Комментарии:

1. A да, короткий и приятный. Хотя было бы неплохо, если бы вы описали, что было не так с исходным ответом.

2. Мне очень нравится этот ответ. Ваша логика настолько удивительна. Я все еще изучаю синтаксис. Но я понимаю, почему 2? Есть ли объяснение, которое, возможно, я, новичок, могу понять?

3. Мне нравится оригинальный ответ. Но этот более лаконичный.

4. Я получаю синтаксическую ошибку в примере. Это ошибка: Ошибка: синтаксическая ошибка исходного файла: file:///Users/schweideltyson/Documents/CIS 80 Assignments/6.27.html Строка: 17, столбец: 20 Исходный код: document.write(% , «<h2> — нечетное число</h2>»);

5. Я использовал ваш пример и получил результаты. Вывод был четным числом. Спасибо.

Ответ №3:

Разве это не должно быть num % 2 == 0 и num % 2 != 0 . Обратите внимание, что я использую == вместо = , а также использую модуль 2.

Ответ №4:

Изменить num % 6 = 0 на num % 2 == 0 !

Если бы я действительно использовал этот код, я бы, вероятно, написал его так:

  if(num % 2){
     document.write("<h2> is an odd number</h2>");
 } else {
     document.write("<h2> is a even number</h2>");
 }
  

Таким образом, num % 2 вычисляется как истинное или ложное значение, поэтому я могу использовать if без сравнения, чтобы получить истинный или ложный ответ. Из-за того, как он реагирует, я также поменял местами четное и нечетное.

Я бы также не стал использовать document.write, вместо этого изменив innerHTML элемента, из-за проблем с document.write и XML, среди прочего.

Комментарии:

1. Я до сих пор не понимаю, почему он это делает % "something" (и почему вы не исправили это в своем ответе)…

2. Это очень хороший момент… Что он делает? Показывает возможности копирования и вставки!