1. ホーム
  2. javascript

[解決済み] Javascriptでgotoを使用するにはどうすればよいですか?

2022-03-11 19:39:54

質問

を使って絶対に実装しなければならないコードがあります。 goto . 例えば、こんなプログラムを書きたいんです。

start:
alert("RINSE");
alert("LATHER");
repeat: goto start

Javascriptでそのようなことをする方法はありますか?

どのように解決するのですか?

もちろんです! というプロジェクトがあります。 後藤の夏 これは、JavaScriptの可能性を最大限に活用し、コードの書き方に革命を起こすものです。

このJavaScriptの前処理ツールは、ラベルを作成してから、この構文でgotoすることができます。

[lbl] <label-name>
goto <label-name>

例えば、設問の例は次のように書くことができます。

[lbl] start:
alert("LATHER");
alert("RINSE");
[lbl] repeat: goto start;

のような単純でつまらないプログラムに限定されないことに注意してください。 LATHER RINSE によってもたらされる可能性があります。 goto は無限にあり、さらに Hello, world! というメッセージを538回、JavaScriptのコンソールに出力します。

var i = 0;
[lbl] start:
console.log("Hello, world!");
i++;
if(i < 538) goto start;

gotoがどのように実装されているかは、こちらをご覧ください。 でgotoをシミュレートできることを利用して、JavaScriptの前処理を行うものです。 ラベル付き while ループ . ですから、上の "Hello, world!" というプログラムを書くと、次のように変換されます。

var i = 0;
start: while(true) {
  console.log("Hello, world!");
  i++;
  if(i < 538) continue start;
  break;
}

whileループは複数の関数やブロックにまたがることができないため、この前処理にはいくつかの制限があります。しかし、これは大きな問題ではありません。 goto を使えば、圧倒されること間違いなしです。

上記のgoto.jsライブラリへのリンクはすべて死んでいます。

goto.js(圧縮なし) --- parseScripts.js(圧縮されていません。)

から Goto.js :