我在一个程序中有很多语句,如下所示:
while( x + ++flips < 8 && board[x + flips][y] == opponent );
(标准“Oracle”)编译器返回错误:“while语句没有正文。”这是语言规范所要求的,还是编译器特定的?有什么样的黑客我可以使用它来实现这个或者我不能重写它吗?
答案 0 :(得分:6)
您发布的代码compiles fine when I try it和JLS section 14.12允许将空语句作为while
循环的正文:
WhileStatement:
while ( Expression ) Statement
Statement:
StatementWithoutTrailingSubstatement
...
StatementWithoutTrailingSubstatement:
Block
EmptyStatement
...
EmptyStatement:
;
最有可能的是,您的实际代码有拼写错误。
答案 1 :(得分:1)
添加一个空体。像这样while( x + ++flips < 8 && board[x + flips][y] == opponent ){}
。