2017-03-06 5 views
-3

forループを作成していましたが、奇妙な問題に気付きました。 forループの中で、私はSystem.out.println(i)を作ることができます。 これはiを出力し、完全に機能します。しかし、私が にi + 1を出力する2行目を追加しようとすると、エラーが発生します。 '私は変数に解決できません'というメッセージが表示されます。forループの中でループの値を2回出力できないのですが

ループのために同じ の内側に 'i'の値を2回印刷できないのはなぜですか?

public static void main(String[] args) { 

    for (int i = 0; i<5; i++) 

    System.out.println(i); 
    System.out.println(i+1); // This i returns an error that says that 'i cannot be resolved to a variable' 

} 
+4

あなたのコードが正しくインデントされた場合は、その理由は明らかであろう。最初の 'println'はループの中にあります。第二は外です。これが '{}'を使う理由です。そして、適切なインデント。 – khelwood

+0

'{} 'の中にあなたのステートメントをラップする必要があります – Abubakkar

+0

中括弧' {...} 'が含まれています –

答えて

0

あなたが不足しているブラケット:

public static void main(String[] args) { 

    for (int i = 0; i<5; i++) { 

     System.out.println(i); 
     System.out.println(i+1); // This i returns an error that says that 'i cannot be resolved to a variable' 
    } 

} 
0

あなたは括弧内の両方のラインを含める必要があります。

for (int i = 0; i<5; i++) 
{ 
    System.out.println(i); 
    System.out.println(i+1); 
} 

i変数のスコープがforループに制限されているため。などだけ次の行はそれの内容として考慮されている場合は、のために/上ブラケット{}を使用しないときはいつでも

1

この

public static void main(String[] args) { 
for (int i = 0; i<5; i++){ 
    System.out.println(i); 
    System.out.println(i+1); 
} 
} 

を試してみてください。だからあなたのコード最初のの印刷物はforループの内容とみなされました。より多くの行を入力するには、大括弧{}を使用する必要があります。

1

Javaでは、他の多くの言語では、ブロックに{}などの角括弧が付きます。これらの中のすべてが範囲内にあります。ループのためにブラケットをスキップすると(ループに関係なく)、次の行だけがループ本体として扱われます。だから、あなたのコードは:

for (int i = 0; i<5; i++) 
     System.out.println(i); 
     System.out.println(i+1); 

ヨーヨーが見ることができるように、一つだけの文がループ内にある

for (int i = 0; i<5; i++) { 
    System.out.println(i); 
    } 
    System.out.println(i+1); 

に相当します。もう1つは外です。表示されているエラーは、変数 "i"がそのスコープに存在しないためです。 forループ内にのみ存在します。

+0

ありがとう、それは最も有用なコメントでした。 –

+0

"同等"ではありません..itはPythonではありません – minigeek

0

複数のステートメントがあり、2番目のステートメントがループ外にあるため、中括弧内に両方のステートメントを追加する必要があります。

public static void main(String[] args){ 

    for(int i=0;i<5;i++){ 

     System.out.println(i); 

     System.out.println(i+1); 
    } 

} 
0

誰もがすでに質問に答えたこのコードを試してみてください。しかし、あなたの質問によって強調された問題は、多くのJavaデザインパターンでは、必ずしも厳密には必要ない場合でも中括弧を使用すべきだと主張する理由の1つです。

使用if (whateverExpression) { //do something; }

なくif (whateverExpression) //do something;

関連する問題