Re: for 〜 next ループ (Re: TEXTAREA と 外部jsファイル
すぎたです。
In message news:bs42mm$5b$1@x1wa.gunma-ct.ac.jp
"Satoshi Nakajima" <nakajima@chem.gunma-ct.ac.jp> wrote ...
> for(i=2;i<10;i++){
> if ((i<5)||(i>=7&&i<10)) {
同じことなのですが、インデントが深くなることを嫌う場合とかに
continue を使って処理をとばすという方法もあります。
# たまに continue や break を嫌う人もいるみたいですが、
# 私はよく使います。
for (i=2; i < 10; i++) {
if (i == 5 || i == 6) {
continue; // 5 か 6 であれば、ループ内の処理をとばす
}
… 処理 …
}
数が少ないのであれば、インデックスを配列にして
取り出すのも手です。
var idxs = new Array(2, 3, 4, 7, 8, 9);
var n = idxs.length;
for (var j=0; j < n; j++) {
i = idxs[j];
… 処理 …
}
もともとの意図として、複数のループ範囲で同じ処理を通過したい
(ので2つのfor文を1つで行いたいとのことでしたが、構文がない)
という処理をそのまま実現する場合、その範囲を配列にして
2重のループで、外側で複数の範囲テーブルの読み出し、内側
でその範囲のループの処理を記述する手もあります。
var ranges = new Array(
new Array(2, 4),
new Array(7, 9)
);
/* わかりづらければ
var ranges = new Array();
ranges[0] = new Array(2, 4);
ranges[1] = new Array(7, 9);
*/
var i, j, r;
var n = ranges.length; // この場合 2
for (j=0; j < n; j++) {
r = ranges[j]; // 範囲の読み出し
for (i=r[0]; i <= r[1]; i++) { // 要素の[0]〜[1]まで
… 処理 …
}
}
--
杉田
sugi-nws@bk.iij4u.or.jp
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735