使用Mod操作符.我编写了一个脚本来读取一个整数并显示它是奇数还是偶数



这是我第一次使用mod操作符。到目前为止,我所做的是声明并初始化一个变量,并将字符串解析为整数。我使用if语句来确定余数是偶数还是奇数。然后我使用文档。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>

你想干什么

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

% + "some string"是无效的Javascript。

另外,正如其他人所说,您需要num % 2 == 0(将6更改为2并确保您有两个=符号)。

最简短的写法是:

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

[编辑]最初的解决方案不起作用,因为只有一个"="用于测试相等性。在Javascript中,必须使用"=="(松散相等)或"==="严格相等。

不应该是num % 2 == 0num % 2 != 0吗?注意,我使用==而不是=,也使用2的模数

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的计算结果为真或假,所以我可以在不进行比较的情况下使用它来获得真或假响应。由于它的响应方式,我也交换了奇数和偶数。

我也不会使用document。写,而不是改变元素的innerHTML,由于文档的问题。

最新更新