有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在forloop和print语句中声明变量时发生java错误

我试图学习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");
}

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


共 (1) 个答案

  1. # 1 楼答案

    abasic 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是一个语句表达式,因为它是一个赋值