[解決済み] Java変数宣言が許可されない【重複
2022-02-08 22:58:45
質問
私は2つのコードを作りました。1つ目は問題なく動作しますが、もう1つはここで変数宣言は許可されませんと表示されます。
最初のコード(動作中)
class Test {
public static void main(String args[]){
for(int i=0;i<10;i++) {
int a[]=new int[10];
}
}
}
2つ目のコード(動作しない)
class Test {
public static void main(String args[]) {
for(int i=0;i<10;i++)
int a[]=new int[10];
}
}
その理由は何でしょうか。どちらのセクションのコードもほぼ同じだと思います。
どのように解決するのですか?
<ブロッククオートどちらのコードもほぼ同じだと思うのですが、なぜでしょうか?
ほぼ、ですが、そうでもないです。コンパイラが文句を言う理由を理解するために、しばしば 言語仕様 .
の本文は
ForStatement
は
Statement
. ローカル変数の宣言は
Statement
- のオプションであり
BlockStatement
.
これは非常に意図的なものです。無意味なコードを書かないようにするために わざとそうしているのです。の中で唯一のステートメントとしてローカル変数を宣言するのは意味がありません。
for
ループまたは
if
ステートメントなど。他のどこでもスコープ外になるので、なぜそれを宣言するのか?
ブロック内で唯一の文であるケースはやはり無意味ですが、それを防ぐのは言語として難しいでしょう。
関連
-
[解決済み] メソッドがそのスーパークラスのメソッドをオーバーライドしない
-
[解決済み】Javaメソッドスタブ
-
[解決済み] Javaで "UTF-8 "文字列リテラルを取得する場所はどこですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] B "の印刷が "#"の印刷より劇的に遅いのはなぜですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】リンクリストの負の値の数でnegativeCntrを代入する
-
[解決済み] hibernateでResultSetを抽出できない。
-
[解決済み】Javaの".class期待値"
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】「java -cp」と「java -jar」の違い?
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み] StringBuilderをクリアまたは空にするにはどうすればよいですか?重複] [重複] [重複] [重複] [重複] [重複
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない