如何在Javascript中为1到1000的奇数和偶数数字做一个脚本?

时间:2014-11-13 01:56:34

标签: javascript loops numbers

我正在学习一本带有解决方案的Javascript书籍,但有一个例子没有解决方案。我想知道怎么做......

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

以下是我如何开始:

<?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>

8 个答案:

答案 0 :(得分:4)

尝试一下:

 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元素。 (正如你在我的例子中看到的那样)

答案 1 :(得分:1)

你应该尝试这样的事情:

(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进行测试

答案 2 :(得分:1)

我无法在计数迭代之间发生暂停。下面的代码,代替你的脚本,将给你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 :(得分:0)

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

答案 4 :(得分:0)

  

我不知道如何添加&#34;暂停&#34;在数字写入和如何知道第一个周期是否结束并开始写入奇数

之间

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

另外,请继续阅读。除了在加载页面期间完成的内容外,document.write*函数并不是非常理想的。尝试使用更高级的方法写入DOM。那些......也应该出现在那本书中。

最后,JavaScript没有暂停&#34;,也没有像sleep这样的东西。它有定时器,但它的工作方式与sleep不同。


一个不相关的说明,我相信你正在使用一本旧书。 &#34; HTML5&#34;只需要一个&#34; html5 doctype&#34;和<html>

<!doctype html>
  <html>
    ...

答案 5 :(得分:0)

此处发布的其他解决方案是正确的,但没有理由通过所有模数工作:

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);

答案 6 :(得分:-1)

c:\test ['dir1', 'dir2'] []
c:\test\dir1 [] ['file1™']
c:\test\dir2 [] ['file2']

答案 7 :(得分:-1)

 <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>