do-while(false)
後処理を必ず実行させるプログラミングのテクニック。
C言語ではよく使われるが、JavaScriptではあまり使われないかもしれない。
なるべくならば、do-while(false)を使わず関数に処理を切り分けるべき。
do-while文を本来のループ処理として使わないため、初見だと理解しずらい。
do-while-false.js
const sentence = "apple banana orange";
const splitter = " ";
let index = 0;
for (const word of sentence.split(splitter)) {
do {
if (!word.includes("a")) {
// do-while文で囲んだ処理を中断できる。
continue;
}
if (!word.includes("e")) {
// do-while文で囲んだ処理を中断できる。
continue;
}
// 早期continueしているため、スコープがネストしない。
console.log(`${index}文字目の単語 ${word}`);
} while (false);
// indexの更新処理を忘れずに実行できる。
index += word.length + splitter.length;
}
C言語での使われ方
malloc()したメモリの開放し忘れを防ぐときなどに使われる。
C言語で関数形式マクロを書くときにも使われる。
しかし、現代ではインライン関数を使ったほうがよい。