如何在Javascript中为1到1000的奇数和偶数编写脚本?

Posted

技术标签:

【中文标题】如何在Javascript中为1到1000的奇数和偶数编写脚本?【英文标题】:How to do a script for odd and even numbers from 1 to 1000 in Javascript? 【发布时间】:2015-01-10 01:53:36 【问题描述】:

我正在研究一本带有已解决示例的 javascript 书籍,但有一个示例没有解决方案。我想知道怎么做...

在javascript(在浏览器中)我应该做的是写1-1000的偶数,完成后写1-1000的奇数......我不知道如何在数字之间添加非常小的“暂停”写以及如何知道第一个周期是否结束并开始写奇数?

我是这样开始的:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 <head>
   <title>Test</title>
 </head>
 <body>
<script type="text/javascript">
/* <![CDATA[ */
var i;
for (i = 0; i < 1000; i++)
if ((i % 2) == 0)
  document.writeln(i);

/* ]]> */
</script>
 </body>
</html>

【问题讨论】:

JavaScript 中没有int 关键字!使用var 关键字。 使用 document.write 是不好的做法...为什么书籍仍然教它...。 可能是因为很多程序员已经习惯了 REPL 并且打印是提供输出的最简单的方法之一。否则,你需要教 DOM 【参考方案1】:

试试这个:

 function partA() 
        for (var i = 0; i < 1000; i++)
            if ((i % 2) == 0) document.write(i + ' ');
        
        window.setTimeout(partB,1000)
    

    function partB() 
        for (var i = 0; i < 1000; i++)
            if ((i % 2) !== 0) document.write(i + ' ');
        
    

    partA();

旁注:

仅将document.write 用于测试。 如果您在加载的 HTML 文档上执行它,所有 HTML 元素都将被覆盖。 (如您在我的示例中所见)

【讨论】:

【参考方案2】:

我无法在计数迭代之间暂停。下面的代码代替您的脚本,将为您提供 0-1000 个偶数,然后是赔率,每行 1 个。

网站上已经有一些关于在 javascript 中等待的讨论:What's the equivalent of Java's Thread.sleep() in JavaScript?

<script>
for(var mod = 0; mod<2; mod++)
  for (var i = 0; i < 1000; i++)
    if ((i % 2) == mod)
      document.writeln(i+"<br>");

</script>

【讨论】:

【参考方案3】:

你应该试试这样的:

(function()

  for (var i = 0; i < 1000; i++)
    if ((i % 2) === 0) document. write(i + ' ');
  

  for (var i = 0; i < 1000; i++)
    if ((i % 2) !== 0) document. write(i + ' ');
  
)();

*您只能将document.write 用于测试目的

【讨论】:

是的,我已经注意到了。【参考方案4】:

首先,如果你想要从 1 到 1000 的偶数,你的迭代变量应该从 1 开始,而不是 0。:) 要在偶数之后写入奇数,您可以使用 if(i%2==1) 在第一个循环后面放置另一个循环,它应该没问题!

【讨论】:

以及如何在写数字之间添加停顿?结束一个循环后? @Byakugan 如***.com/a/26900201/4241944 :)【参考方案5】:

我不确定如何在数字写入之间添加“暂停”以及如何知道第一个周期是否结束并开始写入奇数

使用函数。它也应该在你正在阅读的那本书中。用一个表示偶数,另一个表示奇数。应该有一章是关于事件处理的,你可以在其中使用元素(如按钮)来处理点击。用它来调用函数。

另外,请尝试进一步阅读。 document.write* 功能并不理想,除了在页面加载期间完成的工作。尝试使用更高级的方式写入 DOM。那些..也应该在那本书里。

最后,JavaScript 不会“暂停”,也没有像 sleep 这样的东西。虽然它有计时器,但它的工作方式与sleep 不同。


一个不相关的笔记,我相信你正在使用一本旧书。 “HTML5”只需要“html5 doctype”和&lt;html&gt;

<!doctype html>
  <html>
    ...

【讨论】:

【参考方案6】:

此处发布的其他解决方案是正确的,但没有理由进行所有的模运算:

function evens () 
    var i;
    for (i = 2; i <= 1000; i++,i++) 
        document.writeln(i + '<br>');
    
;
function odds () 
    var i;
    for (i = 1; i < 1000; i++,i++) 
        document.writeln(i + '<br>');
                   
;
evens();
setTimeout(odds, 2000);

【讨论】:

出于好奇,这并不比使用 % 运算符检查每个整数快(这两种方法都在 160 毫秒左右执行)。使用你更清楚的那个。【参考方案7】:
function setCode() 
    var textbox1 = document.getElementById('textbox1');
    var textbox2 = document.getElementById('textbox2');
    var divResult = document.getElementById('divResult');
    var c = ['azimuth','background','background-attachment',
    'background-color','background-image',
    'background-position','background-repeat',
    'behavior','border','border-bottom',
    'border-bottom-color','border-bottom-style',
    'border-bottom-width','border-collapse',
    'border-color','border-left','border-left-color',
    'border-left-style','border-left-width','border-right',
    'border-right-color','border-right-style',
    'border-right-width','border-spacing','border-style',
    'border-top','border-top-color','border-top-style',];

var code0 = ( function set(C0) 
        return ( C0 +=
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    [Math.floor(Math.random()*10)])
    && (C0.length == 3) ? C0 : set(C0);
    
)('');
    textbox1.value =  code0;
    divResult.innerHTML = c[textbox1.value];
    var t;
    t = setTimeout('setCode()', 1000);


【讨论】:

【参考方案8】:
 <script type="text/javascript">
    var number = 0;
    while (number <= 1000) 
        if (number % 2 === 0) 
            document.write(number + " is even number <br />");
            number = number + 1;

         else 
            document.write(number + " is odd number <br/>");
            number = number + 1;
        
    
</script>

【讨论】:

不要忘记添加关于答案的描述/详细信息

以上是关于如何在Javascript中为1到1000的奇数和偶数编写脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何捕获 1000 个随机整数的最小值和最大值?

请编程输出1000以内能被3整除的奇数以及这些奇数的和?

C语言编程:输出1000以内能被3整除的奇数以及这些奇数的和,怎么写?

如何在 JavaScript 中为视频播放不同的音频?

异或^运算——找到数组中为奇数个数的元素

输出1到1000之间的所有素数