Java for循环的括号中可以有什么内容?

前端之家收集整理的这篇文章主要介绍了Java for循环的括号中可以有什么内容?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题是关于 Java for语句,例如
  1. for (int i = 0; i < 10; ++i) {/* stuff */}

我不明白的是,我可以在括号中放入多少代码/什么样的代码(即我有int i = 0; i< 10;我在我的例子中) - 我真的不明白用于描述它的语言: http://java.sun.com/docs/books/jls/third_edition/html/statements.html#24588

基本上我的问题归结为要求翻译规范中的位看起来像:

ForInit:
StatementExpressionList
LocalVariableDeclaration

编辑:哇.我想真正的答案是“学会阅读并理解JLS中使用的符号 – 它被用于某种原因”.谢谢你的所有答案.

解决方法

StatementExpressionList和LocalVariableDeclaration都在页面的其他位置定义.我会在这里复制它们:
  1. StatementExpressionList:
  2. StatementExpression
  3. StatementExpressionList,StatementExpression
  4.  
  5. StatementExpression:
  6. Assignment
  7. PreIncrementExpression
  8. PreDecrementExpression
  9. PostIncrementExpression
  10. PostDecrementExpression
  11. MethodInvocation
  12. ClassInstanceCreationExpression

  1. LocalVariableDeclaration:
  2. VariableModifiers Type VariableDeclarators
  3.  
  4. VariableDeclarators:
  5. VariableDeclarator
  6. VariableDeclarators,VariableDeclarator
  7.  
  8. VariableDeclarator:
  9. VariableDeclaratorId
  10. VariableDeclaratorId = VariableInitializer
  11.  
  12. VariableDeclaratorId:
  13. Identifier
  14. VariableDeclaratorId [ ]
  15.  
  16. VariableInitializer:
  17. Expression
  18. ArrayInitializer

进一步遵循语法没有多大意义;我希望它很容易阅读.

这意味着您可以在ForInit部分中使用任意数量的StatementExpressions(以逗号分隔)或LocalVariableDeclaration. LocalVariableDeclaration可以由任意数量的“variable = value”对组成,以逗号分隔,以其类型开头.

所以这是合法的:

  1. for (int i = 0,j = 0,k = 0;;) { }

因为“int i = 0,k = 0”是有效的LocalVariableDeclaration.这是合法的:

  1. int i = 0;
  2. String str = "Hello";
  3. for (str = "hi",i++,++i,sayHello(),new MyClass();;) { }

因为初始化程序中的所有随机内容都符合StatementExpressions.

由于在for循环的更新部分中允许使用StatementExpressionList,因此它也是有效的:

  1. int i = 0;
  2. String str = "Hello";
  3. for (;;str = "hi",new MyClass()) { }

你开始拍照吗?

猜你在找的Java相关文章