我有一些語句在一個過程是這樣的:雖然聲明沒有正文?
while(x + ++flips < 8 && board[x + flips][y] == opponent);
的(標準的「甲骨文」)編譯器返回的錯誤:「雖然聲明中沒有正文」這是語言規範所要求的還是編譯器特定的?有什麼黑客我可以用來讓這個工作或我堅持重寫它?
我有一些語句在一個過程是這樣的:雖然聲明沒有正文?
while(x + ++flips < 8 && board[x + flips][y] == opponent);
的(標準的「甲骨文」)編譯器返回的錯誤:「雖然聲明中沒有正文」這是語言規範所要求的還是編譯器特定的?有什麼黑客我可以用來讓這個工作或我堅持重寫它?
只需添加一個空的正文。像這樣while(x + ++flips < 8 && board[x + flips][y] == opponent){}
。
分號應該已經足夠作爲一個身體。 [JLS](https://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.12)允許,並且在我嘗試時編譯正常。 – user2357112
您已經發布compiles fine when I try it的代碼,並允許JLS section 14.12一個空的語句作爲while
循環體:
WhileStatement:
while (Expression) Statement
Statement:
StatementWithoutTrailingSubstatement
...
StatementWithoutTrailingSubstatement:
Block
EmptyStatement
...
EmptyStatement:
;
最有可能的,你的實際代碼有一個錯字。
我不知道,會追加'while(..){};'也許工作? – displayname
添加一個正文 - 「{/ *沒有任何操作* /}」 - 關閉它。如果這是一個*錯誤*(可能只是n00bs)或一致性問題,這是值得商榷的。 – usr2564301
[當我嘗試時,一個非常相似的循環工作。](http://ideone.com/LDfLbd)您確定您在實際代碼中的正確位置上有分號嗎? – user2357112