2011-09-18 8 views
6

Soy un novato de Java. Solo lo he usado por unos días y todavía estoy tratando de resolverlo todo. En un programa, ¿una línea es lo mismo que una declaración?¿Es una línea en un programa Java lo mismo que una instrucción?

+0

Tantas respuestas ... ¿Cuál acepto? – Benny

+0

Acepte el que funcione para usted. – fireshadow52

+1

El que sea más útil para usted. Si todos son igualmente útiles, generalmente se acepta la primera respuesta publicada. –

Respuesta

4

No. El compilador de Java no mira las líneas, el espaciado u otros problemas de formato al compilar un programa. Solo quiere ver el ; al final de cada declaración . Esta línea de funcionaría bien:

int i = 13; i += 23; 

Sin embargo, haciendo cosas como esta pueden - y lo más probable es que - los problemas de legibilidad causa con el código fuente. Por esta razón, no es recomendable.

También es posible que una sola declaración a ocupar varias líneas:

int i = 
    13; 
4

En un programa, ¿es una línea lo mismo que una afirmación?

¿Quieres saber la diferencia? Empezar con la JLS §14.5: Blocks and Statements:

Statement: 
     StatementWithoutTrailingSubstatement 
     LabeledStatement 
     IfThenStatement 
     IfThenElseStatement 
     WhileStatement 
     ForStatement 

StatementWithoutTrailingSubstatement: 
     Block 
     EmptyStatement 
     ExpressionStatement 
     AssertStatement 
     SwitchStatement 
     DoStatement 
     BreakStatement 
     ContinueStatement 
     ReturnStatement 
     SynchronizedStatement 
     ThrowStatement 
     TryStatement 

StatementNoShortIf: 
     StatementWithoutTrailingSubstatement 
     LabeledStatementNoShortIf 
     IfThenElseStatementNoShortIf 
     WhileStatementNoShortIf 
     ForStatementNoShortIf 
2

Esta línea incluye dos declaraciones:

j = 5; j += 3; 

Por lo tanto, una línea no es necesariamente una declaración ...

5

No. Me puede escribir:

int x = 1; int y = 2; 

Esa es una línea, y dos declaraciones.

2

Solo por práctica común y por legibilidad. En Java, las sentencias terminan con punto y coma, o en el caso de bloques, con pares de curlybraces ({}).

4

Según Java grammar:

Statement: 
    Block 
    if ParExpression Statement [else Statement] 
    for (ForInitOpt ; [Expression] ; ForUpdateOpt) Statement 
    while ParExpression Statement 
    do Statement while ParExpression ; 
    try Block (Catches | [Catches] finally Block) 
    switch ParExpression { SwitchBlockStatementGroups } 
    synchronized ParExpression Block 
    return [Expression] ; 
    throw Expression ; 
    break [Identifier] 
    continue [Identifier] 
    ; 
    ExpressionStatement 
    Identifier : Statement 

Sobre la base de esto se puede ver fácilmente que una sentencia puede abarcar varias líneas, sino también sola línea puede alojar múltiples declaraciones. También tenga en cuenta que la declaración es un término muy amplio.

+0

Su punto es? – delnan

+0

Sólo una cabeza, esa no es la versión más reciente de JLS. –

Cuestiones relacionadas