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
それは割り当てなので、文の表現です。