[解決済み] javaでジャンプする方法
2022-02-17 01:03:30
質問内容
私は次のようなコードを持っています。
public class Test
{
public static void main(String[] args)
{
continue s;
System.out.println("I am not supposed to print this");
s:
System.out.println("I am suppose to print this");
}
}
エラーが表示される
java: undefined label: s
どうしたんですか?
解決方法は?
基本的に、Javaでそれを行う実用的な方法はありません。 あなたは、"goto"と同等のことをしようとしているようですが、それはJavaではサポートされていません。 その
break label
と
continue label
文は
を囲む
のラベルが付いたステートメントです。
さて、Javaの形式文法に従えば、こう書けるはずだ。
s: {
continue s;
System.out.println("I am not supposed to print this");
}
System.out.println("I am suppose to print this");
が、その 今も は、2つの理由でコンパイルできません。
-
continueはループ文のラベルにしか分岐できない。 (A
break
はその制約がないのですが ......) -
は
continue
(またはbreak
) は次の文に到達できないようにします。
こちらもご覧ください。 Javaにおけるgoto文の代替となるもの
しかし、あなたのコードを "work"にするためには、1つだけかなりトリッキーな方法があります。
static final boolean flag = true; // class attribute ...
...
s: {
if (flag) break s;
System.out.println("I am not supposed to print this");
}
System.out.println("I am suppose to print this");
はコンパイラによって評価されます。
break
は事実上無条件です。 しかし、JLSでは、最初の
println
になります。
として扱われます。
到達可能なコードエラーにならないようにするためです。
この
かもしれない
があれば便利です。
生成
このソースコード それ以外では、(IMO)単なる好奇心です。 このようなことを行うには、通常の
if
/
else
ステートメントを使用するか、最初の "print" を完全に削除してください。
関連
-
[解決済み】Hibernateエラー:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられました。
-
[解決済み】java.io.IOException: 壊れたパイプ
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】エラー。Selection does not contain a main type
-
[解決済み】指定された子にはすでに親がいます。先に子の親に対してremoveView()を呼び出す必要がある(Android)
-
[解決済み】Javaの部分文字列:「文字列のインデックスが範囲外」。
-
[解決済み】非閉鎖文字リテラルエラー
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み] java.sql.SQLException を取得しました。ResultSet が終了した後の操作は許可されません。
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。
-
[解決済み】Javaの "continue "キーワードとその動作は?
-
[解決済み】Javaにgoto文はあるのか?