簡體   English   中英

在帶打印語句的for循環內聲明變量時出錯

[英]Error while declaring a variable inside for-loop along with print statement

我試圖學習for循環的工作原理,所以我編寫了這樣的代碼。

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

通過這種方式,我可以了解何時執行for循環的哪一部分。 但是我在第一行指出“ .class期望”時出現錯誤。 也許這只是意味着,我無法在第一行中聲明變量。 因此,我對其進行了重新設計,現在它可以完美運行了。

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

但是我不明白為什么我不能在第一行中聲明一個變量。

基本的for循環的語法為:

BasicForStatement:
  for ( [ForInit] ; [Expression] ; [ForUpdate] ) Statement

BasicForStatementNoShortIf:
  for ( [ForInit] ; [Expression] ; [ForUpdate] ) StatementNoShortIf

ForInit:
  StatementExpressionList 
  LocalVariableDeclaration

換句話說: for的第一位可以包含語句表達式列表或局部變量聲明,但不能同時包含兩者。

  • System.out.println("hi")是一個語句表達式(因為它是一個方法調用表達式);
  • int i=0不是語句表達式(因為它不是表達式);
  • i=0是一個語句表達式,因為它是一個賦值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM