📄 19.doc.html
字号:
SynchronizedStatement<br>
ThrowStatement<br>
TryStatement
</i>
<i>EmptyStatement:<br>
</i> <code>;
</code>
<i>LabeledStatement:<br>
</i> <i>Identifier</i><code> : </code><i>Statement
</i>
<i>LabeledStatementNoShortIf:<br>
</i> <i>Identifier</i><code> : </code><i>StatementNoShortIf
</i>
<i>ExpressionStatement:<br>
</i> <i>StatementExpression</i><code> ;
</code>
<i>StatementExpression:<br>
</i> <i>Assignment<br>
PreIncrementExpression<br>
PreDecrementExpression<br>
PostIncrementExpression<br>
PostDecrementExpression<br>
MethodInvocation<br>
</i> <i>ClassInstanceCreationExpression
</i></pre></ul><ul><pre>
<i>IfThenStatement:<br>
</i> <code>if ( </code><i>Expression</i><code> ) </code><i>Statement
</i>
<i>IfThenElseStatement:<br>
</i> <code>if ( </code><i>Expression</i><code> ) </code><i>StatementNoShortIf</i><code> else </code><i>Statement
</i>
<i>IfThenElseStatementNoShortIf:<br>
</i> <code>if ( </code><i>Expression</i><code> ) </code><i>StatementNoShortIf</i><code> else </code><i>StatementNoShortIf
</i>
<i>SwitchStatement:<br>
</i><code> switch ( </code><i>Expression</i><code> ) </code><i>SwitchBlock
</i>
<i>SwitchBlock:<br>
</i> <code>{ </code><i>SwitchBlockStatementGroups</i><sub><i>opt</i></sub><code> </code><i>SwitchLabels</i><sub><i>opt</i></sub><code> }
</code>
<i>SwitchBlockStatementGroups:<br>
</i><code> </code><i>SwitchBlockStatementGroup<br>
</i><code> </code><i>SwitchBlockStatementGroups</i><code> </code><i>SwitchBlockStatementGroup
</i>
<i>SwitchBlockStatementGroup:<br>
</i> <i>SwitchLabels</i><code> </code><i>BlockStatements
</i>
<i>SwitchLabels:<br>
</i> <i>SwitchLabel<br>
</i> <i>SwitchLabels</i><code> </code><i>SwitchLabel
</i>
<i>SwitchLabel:<br>
</i><code> case </code><i>ConstantExpression</i><code> :<br>
default :
</code>
<i>WhileStatement:<br>
</i> <code>while ( </code><i>Expression</i><code> ) </code><i>Statement
</i>
<i>WhileStatementNoShortIf:<br>
</i> <code>while ( </code><i>Expression</i><code> ) </code><i>StatementNoShortIf
</i>
<i>DoStatement:<br>
</i><code> do </code><i>Statement</i><code> while ( </code><i>Expression</i><code> ) ;
</code></pre></ul><ul><pre>
<i>ForStatement:<br>
</i> <code>for ( </code><i>ForInit</i><sub><i>opt</i></sub><code> ; </code><i>Expression</i><sub><i>opt</i></sub><code> ; </code><i>ForUpdate</i><sub><i>opt</i></sub><code> )<br>
</code> <i>Statement
</i>
<i>ForStatementNoShortIf:<br>
</i> <code>for ( </code><i>ForInit</i><sub><i>opt</i></sub><code> ; </code><i>Expression</i><sub><i>opt</i></sub><code> ; </code><i>ForUpdate</i><sub><i>opt</i></sub><code> )<br>
</code><i>StatementNoShortIf
</i>
<i>ForInit:<br>
</i><code> </code><i>StatementExpressionList<br>
</i> <i>LocalVariableDeclaration
</i>
<i>ForUpdate:<br>
</i> <i>StatementExpressionList
</i>
<i>StatementExpressionList:<br>
</i> <i>StatementExpression<br>
</i> <i>StatementExpressionList</i><code> , </code><i>StatementExpression
</i>
<i>BreakStatement:<br>
</i> <code>break </code><i>Identifier</i><sub><i>opt</i></sub><code> ;
</code>
<i>ContinueStatement:<br>
</i> <code>continu</code><i>e </i><i>Identifier</i><sub><i>opt</i></sub><code> ;
</code>
<i>ReturnStatement:<br>
</i> <code>return </code><i>Expression</i><sub><i>opt</i></sub><code> ;
</code>
<i>ThrowStatement:<br>
</i> <code>throw </code><i>Expression</i><code> ;
</code>
<i>SynchronizedStatement:<br>
</i> <code>synchronized ( </code><i>Expression</i><code> ) </code><i>Block
</i>
<i>TryStatement:<br>
</i><code> try </code><i>Block</i><code> </code><i>Catches<br>
</i><code>try </code><i>Block</i><code> </code><i>Catches</i><sub><i>opt</i></sub><code> </code><i>Finally
</i>
<i>Catches:<br>
</i> <i>CatchClause<br>
</i> <i>Catches</i><code> </code><i>CatchClause
</i>
<i>CatchClause:<br>
</i> <code>catch ( </code><i>FormalParameter</i><code> ) </code><i>Block
</i>
<i>Finally:<br>
</i><code> finally </code><i>Block
</i></pre></ul><a name="26586"></a>
<h2>19.12 Productions from <a href="15.doc.html#4709">§15</a><a href="15.doc.html#44393">: Expressions</a></h2>
<ul><pre>
<i>Primary:<br>
</i> <i>PrimaryNoNewArray<br>
</i> <i>ArrayCreationExpression
</i>
<i>PrimaryNoNewArray:<br>
</i> <i>Literal<br>
</i><code> this<br>
</code> <code>( </code><i>Expression</i><code> )<br>
</code> <i>ClassInstanceCreationExpression<br>
</i> <i>FieldAccess<br>
</i> <i>MethodInvocation<br>
</i> <i>ArrayAccess
</i>
<i>ClassInstanceCreationExpression:<br>
</i> <code>new </code><i>ClassType</i><code> ( </code><i>ArgumentList</i><sub><i>opt</i></sub><code> )
</code>
<i>ArgumentList:<br>
</i> <i>Expression<br>
</i> <i>ArgumentList</i><code> , </code><i>Expression
</i>
<i>ArrayCreationExpression:<br>
</i><sub><i> </i></sub><code>new </code><i>PrimitiveType</i><code> </code><i>DimExprs</i><code> </code><i>Dims</i><sub><i>opt<br>
</i></sub> <code>new </code><i>ClassOrInterfaceType</i><code> </code><i>DimExprs</i><code> </code><i>Dims</i><sub><i>opt
</i></sub>
<i>DimExprs:<br>
</i> <i>DimExpr<br>
</i> <i>DimExprs</i><code> </code><i>DimExpr
</i>
<i>DimExpr:<br>
</i> <code>[ </code><i>Expression</i><code> ]
</code>
<i>Dims:<br>
</i> <code>[ ]<br>
</code> <i>Dims</i><code> [ ]
</code>
<i>FieldAccess:<br>
</i> <i>Primary</i><code> . </code><i>Identifier<br>
</i> <code>super . </code><i>Identifier
</i>
<i>MethodInvocation:<br>
</i> <i>Name</i><code> ( </code><i>ArgumentList</i><sub><i>opt</i></sub><code> )<br>
</code> <i>Primary</i><code> . </code><i>Identifier</i><code> ( </code><i>ArgumentList</i><sub><i>opt</i></sub><code> )<br>
super . </code><i>Identifier</i><code> ( </code><i>ArgumentList</i><sub><i>opt</i></sub><code> )
</code>
<i>ArrayAccess:<br>
</i> <i>Name</i><code> [ </code><i>Expression</i><code> ]<br>
</code> <i>PrimaryNoNewArray</i><code> [ </code><i>Expression</i><code> ]
</code>
<i>PostfixExpression:<br>
Primary<br>
Name<br>
</i> <i>PostIncrementExpression<br>
PostDecrementExpression
</i>
<i>PostIncrementExpression:<br>
</i> <i>PostfixExpression</i><code> ++
</code>
<i>PostDecrementExpression:<br>
</i> <i>PostfixExpression</i><code> --
</code>
<i>UnaryExpression</i>:<br>
<code> </code><i>PreIncrementExpression<br>
</i><code> </code><i>PreDecrementExpression<br>
</i><code> + </code><i>UnaryExpression<br>
</i> <code>- </code><i>UnaryExpression<br>
</i> <i>UnaryExpressionNotPlusMinus
</i>
<i>PreIncrementExpression:<br>
</i><code> ++ </code><i>UnaryExpression
</i>
<i>PreDecrementExpression:<br>
</i> <code>-- </code><i>UnaryExpression
</i>
<i>UnaryExpressionNotPlusMinus</i>:<br>
<code> </code><i>PostfixExpression<br>
</i><code> ~ </code><i>UnaryExpression<br>
</i> <code>! </code><i>UnaryExpression<br>
</i><code> </code><i>CastExpression
</i>
<i>CastExpression:<br>
</i><code> ( </code><i>PrimitiveType</i><code> </code><i>Dims</i><sub><i>opt</i></sub><code> ) </code><i>UnaryExpression<br>
</i><code> ( </code><i>Expression</i><code> ) </code><i>UnaryExpressionNotPlusMinus<br>
</i><code>( </code><i>Name</i><code> </code><i>Dims</i><code> ) </code><i>UnaryExpressionNotPlusMinus
</i>
<i>MultiplicativeExpression</i>:<br>
<i>UnaryExpression<br>
</i> <i>MultiplicativeExpression</i><code> * </code><i>UnaryExpression<br>
</i> <i>MultiplicativeExpression</i><code> / </code><i>UnaryExpression<br>
</i> <i>MultiplicativeExpression</i><code> % </code><i>UnaryExpression
</i>
<i>AdditiveExpression:<br>
</i> <i>MultiplicativeExpression<br>
</i> <i>AdditiveExpression</i><code> + </code><i>MultiplicativeExpression<br>
</i><code> </code><i>AdditiveExpression</i><code> - </code><i>MultiplicativeExpression
</i>
<i>ShiftExpression:<br>
</i> <i>AdditiveExpression<br>
</i> <i>ShiftExpression</i><code> << </code><i>AdditiveExpression<br>
</i> <i>ShiftExpression</i><code> >> </code><i>AdditiveExpression<br>
</i> <i>ShiftExpression</i><code> >>> </code><i>AdditiveExpression
</i>
<i>RelationalExpression:<br>
</i> <i>ShiftExpression<br>
</i> <i>RelationalExpression</i><code> < </code><i>ShiftExpression<br>
</i> <i>RelationalExpression</i><code> > </code><i>ShiftExpression<br>
</i> <i>RelationalExpression</i><code> <= </code><i>ShiftExpression<br>
</i> <i>RelationalExpression</i><code> >= </code><i>ShiftExpression<br>
</i> <i>RelationalExpression</i><code> instanceof </code><i>ReferenceType
</i>
<i>EqualityExpression:<br>
</i> <i>RelationalExpression<br>
</i> <i>EqualityExpression</i><code> == </code><i>RelationalExpression<br>
</i> <i>EqualityExpression</i><code> != </code><i>RelationalExpression
</i>
<i>AndExpression:<br>
</i> <i>EqualityExpression<br>
</i> <i>AndExpression</i><code> & </code><i>EqualityExpression
</i>
<i>ExclusiveOrExpression:<br>
</i> <i>AndExpression<br>
</i> <i>ExclusiveOrExpression</i><code> ^ </code><i>AndExpression
</i>
<i>InclusiveOrExpression:<br>
</i> <i>ExclusiveOrExpression<br>
</i> <i>InclusiveOrExpression</i><code> | </code><i>ExclusiveOrExpression
</i>
<i>ConditionalAndExpression:<br>
</i> <i>InclusiveOrExpression<br>
</i> <i>ConditionalAndExpression</i><code> && </code><i>InclusiveOrExpression
</i>
<i>ConditionalOrExpression:<br>
</i> <i>ConditionalAndExpression<br>
</i> <i>ConditionalOrExpression</i><code> || </code><i>ConditionalAndExpression
</i>
<i>ConditionalExpression:<br>
</i> <i>ConditionalOrExpression<br>
</i> <i>ConditionalOrExpression</i><code> ? </code>Expression<code> : </code><i>ConditionalExpression
</i>
<i>AssignmentExpression:<br>
</i> <i>ConditionalExpression<br>
</i> <i>Assignment
</i>
<i>Assignment:<br>
</i> <i>LeftHandSide</i><code> </code><i>AssignmentOperator</i><code> </code><i>AssignmentExpression
</i>
<i>LeftHandSide:<br>
</i> <i>Name<br>
</i> <i>FieldAccess<br>
</i> <i>ArrayAccess
</i>
<i>AssignmentOperator:</i> <i>one</i> <i>of<br>
</i> <code>= *= /= %= += -= <<= >>= >>>= &= ^= |=
</code>
<i>Expression:<br>
</i> <i>AssignmentExpression
</i>
<i>ConstantExpression:<br>
</i> <i>Expression
</i></pre></ul><a name="47489"></a>
<p>
<hr>
<!-- This inserts footnotes--><p>
<a href="index.html">Contents</a> | <a href="18.doc.html">Prev</a> | <a href="javalang.doc.html">Next</a> | <a href="j.index.doc1.html">Index</a>
<p>
<font size=-1>Java Language Specification (HTML generated by Suzette Pelouch on February 24, 1998)<br>
<i><a href="jcopyright.doc.html">Copyright © 1996 Sun Microsystems, Inc.</a>
All rights reserved</i>
<br>
Please send any comments or corrections to <a href="mailto:doug.kramer@sun.com">doug.kramer@sun.com</a>
</font>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -