エラーprint文と一緒にforループの変数の内部を宣言しながら、

user11564744:

私はそのようなコードを作ったので、私は、forループどのように機能するかを学習しようとしていました。

for(System.out.println("hi"),int i=0;i<5;System.out.println("yo"),i++) 
{
System.out.println("teapot");
}

私が理解することができますこの方法では、forループの一部は、ときに実行されています。しかし、私は「期待の.class」を述べ、最初の行でエラーを取得しています。たぶん、この単純な手段は、私が最初の行に変数を宣言することはできません。だから私はそれを再加工し、今では完璧に動作します。

int i;
for(System.out.println("hi"),i=0;i<5;System.out.println("yo"),i++) 
{
System.out.println("teapot");
}

私は最初の行で変数を宣言することができない理由しかし、私は理解していません。

アンディ・ターナー:

構文ループのための基本的には、次のとおりです。

BasicForStatement:
  for ( [ForInit] ; [Expression] ; [ForUpdate] ) Statement

BasicForStatementNoShortIf:
  for ( [ForInit] ; [Expression] ; [ForUpdate] ) StatementNoShortIf

ForInit:
  StatementExpressionList 
  LocalVariableDeclaration

言い換えれば、最初のビットは、forのリストのいずれか含めることができ文の表現、またはローカル変数の宣言ではなく、両方を。

  • System.out.println("hi") 文の表現(それがメソッド呼出し式だから)です。
  • int i=0 文の表現ではありません(それは表現ではないので)。
  • i=0 それは割り当てなので、文の表現です。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=225171&siteId=1