【问题标题】:Error while declaring a variable inside for-loop along with print statement在 for 循环中声明变量以及 print 语句时出错
【发布时间】:2019-06-04 10:02:19
【问题描述】:

我想了解 for 循环的工作原理,所以我做了这样的代码。

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

这样我就可以理解了,for循环的哪一部分是在什么时候执行的。但是我在第一行出现错误,说明“.class expected”。也许这只是意味着,我不能在第一行声明一个变量。所以我重新设计了它,现在它完美地工作了。

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

但是我不明白为什么我不能在第一行声明一个变量。

【问题讨论】:

    标签: java for-loop


    【解决方案1】:

    basic for loop 的语法是:

    BasicForStatement:
      for ( [ForInit] ; [Expression] ; [ForUpdate] ) Statement
    
    BasicForStatementNoShortIf:
      for ( [ForInit] ; [Expression] ; [ForUpdate] ) StatementNoShortIf
    
    ForInit:
      StatementExpressionList 
      LocalVariableDeclaration
    

    换句话说:for 的第一位可以包含statement expressions 的列表或局部变量声明,但不能同时包含两者。

    • System.out.println("hi")是语句表达式(因为是方法调用表达式);
    • int i=0 不是语句表达式(因为它不是表达式);
    • i=0 是一个语句表达式,因为它是一个赋值。

    【讨论】:

    猜你喜欢
    • 2014-03-08
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    相关资源
    最近更新 更多