打印1-100的偶数,每行5个数字

时间:2015-02-07 00:08:34

标签: javascript loops for-loop iteration

尝试刷新一些基本的JavaScript,我想知道如何解决这个问题。我找到了一种方法,但它非常丑陋,我很欣赏一些更有经验的眼睛,让我知道它们的作用。基本上,只需迭代数字1-100并在每行上以五个一组的形式打印所有偶数。第一行是2,4,5,8,10,第二行是12,14,16,18,20。以下是我到目前为止的情况:

var counter = 0;
var line=[];


for(var i = 0; i<=100; i++){
  if(i%2==0){
    if(line.length <5){
    line[counter] = i;
    counter++
    }else{
      console.log(line);
      line=[];
      counter=0;
      line[counter] =i;
    }
  }
  }
console.log(line);

非常感谢!

4 个答案:

答案 0 :(得分:3)

console.log(2,4,6,8,10);
console.log(12,14,16,18,20);
console.log(22,24,26,28,30);
console.log(32,34,36,38,40);
console.log(42,44,46,48,50);
console.log(52,54,56,58,60);
console.log(62,64,66,68,70);
console.log(72,74,76,78,80);
console.log(82,84,86,88,90);
console.log(92,94,96,98,100);

对于大多数假设的编程问题,最有价值的是解决他们在现实中缺乏生根并做最简单的事情 - 现实肯定会变得更加复杂。

至于学习练习,当你自己解决这些练习时,这些练习通常效果最佳。

答案 1 :(得分:1)

var line = [];
//you are uninterested in odd numbers, so increment the counter by 2
for(var i = 0; i <= 1000; i = i + 2) {
    line.push(i);
    if((i + 2) % 5 === 0) { //every 5 lines print result
        console.log(line);
        line = []
    }
}

答案 2 :(得分:1)

我在代码中看到的问题是你从0而不是1循环,并且你没有增加else块中的计数器。

修复你的问题:

var counter = 0;
var line=[];

for (var i = 1; i <= 100; i++) {
  if (i % 2 == 0){
    if (line.length < 5) {
      line[counter] = i;
      counter++
    } else {
      console.log(line);
      line=[];
      counter = 0;
      line[counter] = i;
      counter++
    }
  }
}
console.log(line);

不是从1到100循环并检查数字是否为偶数,而是以2为单位从2循环到100。您根本不需要计数器,可以将项目推入阵列。而不是重复在ifelse块中向项目添加项目的代码,您可以在之后执行一次。

通过这些简化,你得到:

var line=[];

for (var i = 2; i <= 100; i += 2) {
  if (line.length == 5) {
    console.log(line);
    line=[];
  }
  line.push(i);
}
console.log(line);

答案 3 :(得分:0)

<script>
  var counter = 0;
  var line = [];
  for (var i = 2; i <= 100; i += 2) {
    line[counter] = i;
    counter++;
    if (line.length == 5) {
      console.log(line);
      counter = 0;
      line = [];
    }
  }
</script>

与您的相同,但使用循环递增2