Javascript 对于a=1;a<;100;a和x2B+;然后创建一个<;br>;当a乘以3时
我试图打印一个数字1到3,当它变成3的倍数时,它将创建一个Javascript 对于a=1;a<;100;a和x2B+;然后创建一个<;br>;当a乘以3时,javascript,html,Javascript,Html,我试图打印一个数字1到3,当它变成3的倍数时,它将创建一个,然后继续打印,直到它符合数字185。 我尝试了这个代码,但它给出了一个错误的答案: for (a = 1; a <= 185; a++) { document.write(" ", a); if (a % 3) { document.write("<br>"); } } for(a=1;a当a不是三的倍数时,这与您想要的相反,并打印出一个。您想要的是: if(a % 3 === 0) 原因 当括
,然后继续打印,直到它符合数字185。我尝试了这个代码,但它给出了一个错误的答案:
for (a = 1; a <= 185; a++) {
document.write(" ", a);
if (a % 3) {
document.write("<br>");
}
}
for(a=1;a当a
不是三的倍数时,这与您想要的相反,并打印出一个
。您想要的是:
if(a % 3 === 0)
原因
当括号之间的表达式为“truthy”(除0
、false
、undefined
、null
、空字符串或NaN
之外的任何内容)时,将执行if
的主体当a
不是3的倍数时,a%3
将是1
或2
,这是“真实的”,当它是3的倍数时,a%3
将是0,这是“虚假的”。你想要的是相反的
根据上述解释,您也可以使用以下方法:
if (!(a % 3))
,但我要说的是,上面的较长版本更清楚地表达了您的意图,我建议您使用它。这与您想要的相反,当a
不是三的倍数时,打印出
。您想要的是:
if(a % 3 === 0)
原因
当括号之间的表达式为“truthy”(除0
、false
、undefined
、null
、空字符串或NaN
之外的任何内容)时,将执行if
的主体当a
不是3的倍数时,a%3
将是1
或2
,这是“真实的”,当它是3的倍数时,a%3
将是0,这是“虚假的”。你想要的是相反的
根据上述解释,您也可以使用以下方法:
if (!(a % 3))
,但我要说的是,上面的较长版本更清楚地表达了您的意图,我建议您使用它。使用
if(a%3==0)
而不是
if(a%3)
对于(a=1;a使用
if(a%3==0)
而不是
if(a%3)
对于(a=1;a而言,如果a可被3整除,则表达式“a%3”将返回0,如果a不可被3整除,则返回余数
如果x为非零,则测试if(x)
将计算主体;如果x为零(或类似于零的东西,例如未定义),则将跳过主体(如果存在,则计算else子句)
在case boolean求值案例(如if)中,您最好的选择是非常明确地说明您测试它的目的。在您的案例中,您可能希望显式地测试if(a%3==0)
如果a可以被3整除,表达式“a%3”将返回0,如果a不能被3整除,则返回余数
如果x为非零,则测试if(x)
将计算主体;如果x为零(或类似于零的东西,例如未定义),则将跳过主体(如果存在,则计算else子句)
在case boolean求值案例(如if)中,您最好的选择是非常明确地说明您测试它的目的。在您的案例中,您可能希望在if条件中显式地测试if(a%3==0)
使用%3==0来获得正确的结果。您的其余逻辑都很好
for(a=1;a<=185;a++)
{
document.write(" ",a);
if(a % 3 == 0) /// <----- change is here
{
document.write("<br>");
}
}
对于if条件中的(a=1;a,使用%3==0来获得正确的结果。其余的逻辑是好的
for(a=1;a<=185;a++)
{
document.write(" ",a);
if(a % 3 == 0) /// <----- change is here
{
document.write("<br>");
}
}
用于(a=1;a另一种方式:
(function(){
var s= [], a= 1;
while(a<185){
s.push([a++, a++, a++].join(', '));
}
document.write(s.join('<br>\n'));
})();
(函数(){
var s=[],a=1;
而(a另一种方式:
(function(){
var s= [], a= 1;
while(a<185){
s.push([a++, a++, a++].join(', '));
}
document.write(s.join('<br>\n'));
})();
(函数(){
var s=[],a=1;
虽然(谢谢你,先生。它也有效。^^这是我近两周的问题。幸好我有机会在这里发布我的问题。谢谢先生。祝你愉快。谢谢先生。它也有效。^这是我近两周的问题。幸好我有机会在这里发布我的问题。谢谢先生。祝你愉快。谢谢你的帮助。先生。如果我可以的话给你一个大大的拥抱,我会给你一个两小时的拥抱。再次感谢先生。祝你今天愉快。谢谢你的帮助。如果我能给你一个大大的拥抱,我会给你两小时。再次感谢先生。祝你一天愉快。谢谢你的回答。先生。我能问一下%3==0和%3==0之间有什么区别吗。我试过了,它给了我一个机器人答案正确,这是正确的。只是想知道在这种情况下,它们都应该工作。在其他情况下,===类似于an==,但也会检查以确保所比较项目的类型相同。在大多数情况下,您会希望使用===。有关更多信息,请参阅谢谢您的回答,先生。我能问一下%3==0与a%3==0。我尝试了它,它给了我正确的答案,这是正确的。只是想知道在这种情况下,它们都应该工作。在其他情况下,===类似于an==,但也会检查以确保所比较的项目的类型是相同的。在大多数情况下,您会希望使用===。有关更多信息,请参阅“不是吗?应该是s.push
,不是吗?”?