这是我第一次使用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>
答案 0 :(得分:2)
你想用
做什么?document.write(% + "<h2> is an even number</h2>")
% + "some string"
无效Javascript。
此外,正如其他人所说,你需要num % 2 == 0
(将6改为2并确保你有两个=符号)。
答案 1 :(得分:1)
编写它的最短方式是:
document.write("<h2> is an "+(num % 2 ? "odd" : "even")+" number</h2>");
[编辑] 原始解决方案不起作用,因为只使用单个“=”来测试相等性。在Javascript中,您必须使用“==”(松散相等)或“===”严格相等。
答案 2 :(得分:0)
将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等问题。
答案 3 :(得分:0)
不应该是num % 2 == 0
和num % 2 != 0
。请注意,我使用==
代替=
,并使用模数2。