我需要循环从1到96的数字,跳过一些值:
2, 4, 5, 7, 10, 12, 13, 15, 18, 20, ..., 81, 83, 86, 88, 89, 91, 94, 96
我尝试了各种各样的循环,但它们都完全失败了,虽然我已经尝试过,但从我的角度来看,他们真的不值得看。
感谢任何指导。
由于投诉和混淆,他们的整个模式应该是 2,4,5,7,10,12,13,15, 17,19,22,24,25,27,30,32, 34,36,37,39,42,44,45,47, 49,51,54,56,57,59,62,64, 66,68,69,71,74,76,77,79, 81,83,86,88,89,91,94,96。
再次感谢! :)
答案 0 :(得分:1)
这是有效的(即使它不是我写过的最漂亮的代码):
var even = true;
var cpt = 0;
var s = '';
var i = 1;
while (i <= 96){
if (even){
if (i%2 == 0){
s += i + ',';
cpt++;
}
if (cpt == 2){
even = !even;
cpt = 0;
}
}else{//odd
if (i%2 == 1){
s += i + ',';
cpt++;
}
if (cpt == 2){
even = !even;
cpt = 0;
i++;
}
}
i++;
}
alert(s);
返回:
2,4,5,7,10,12,13,15,18,20,21,23,26,28,29,31,34,36,37,39,42,44,45,47,50,52,53,55,58,60,61,63,66,68,69,71,74,76,77,79,82,84,85,87,90,92,93,95,
这不是完全相同的结果或结束,但开始时的行为受到尊重
答案 1 :(得分:0)
一种可能的方法:
for (var i = 2; i < 96; i++) {
console.log(i);
console.log(i+=2);
i & 1 && (i+=2);
}
...但是93, 95
结束了,因为你实际上并没有检查该序列应该如何结束。提示:它不是94, 96
。
答案 2 :(得分:0)
for (var i=1; i < 49; i++)
console.log(2 * i - Math.floor((i - 1) % 4 / 2));
在此序列中显示2 * i,减零或一[0,0,1,1,0,0,1,1,...]