Java 编译错误:表达式的开始非法
我正在学习Java(游戏方面)。我买了一本书,它有一些代码,我试图复制和测试它。唯一的问题是,当我试图编译它时,它会出现错误Java 编译错误:表达式的开始非法,java,Java,我正在学习Java(游戏方面)。我买了一本书,它有一些代码,我试图复制和测试它。唯一的问题是,当我试图编译它时,它会出现错误 C:\Users\James\Desktop\Java>Javac GamePanel.java GamePanel.java:57: illegal start of expression private vo
C:\Users\James\Desktop\Java>Javac GamePanel.java
GamePanel.java:57: illegal start of expression
private void gameUpdate()
^
GamePanel.java:57: illegal start of expression
private void gameUpdate()
^
GamePanel.java:57: ';' expected
private void gameUpdate()
^
GamePanel.java:64: reached end of file while parsing
}→
^
4 errors
代码是:
public class GamePanel extends JPanel implements Runnable
{
private static final int PWIDTH = 500;
private static final int PHEIGHT = 400;
private Thread animator;
private volatile boolean running = false;
private volatile boolean gameOver = false;
public GamePanel()
{
setBackground(Color.white);
setPreferredSize( newDimension(PWIDTH, PHEIGHT));
}
public void addNotify()
{
super.addNotify();
startGame();
}
public void startGame()
{
if (animator == null || !running)
{
animator = new Thread(this);
animator.start();
}
}
public void stopGame()
{
running = false;
}
public void run()
{
running = true;
while(running)
{
gameUpdate();
gameRender();
repaint();
try
{
Thread.sleep(20);
}
catch(InterruptedException ex)
{
}
System.exit(0);
}
private void gameUpdate()
{
if (gameOver == false) {
}
}
}
我知道我可能做错了什么,但我反复检查了一遍,有人能告诉我我做错了什么吗?你缺少了一个
}
while循环没有关闭
public void run()
{
running = true;
while(running)
{
gameUpdate();
gameRender();
repaint();
try
{
Thread.sleep(20);
}
catch(InterruptedException ex)
{
}
} // <<< this is the missing brace
System.exit(0);
}
public void run()
{
运行=真;
(跑步时)
{
gameUpdate();
gameRender();
重新油漆();
尝试
{
睡眠(20);
}
捕获(中断异常例外)
{
}
}//您错过了while循环的结束}。如果你想知道(你也应该这么想),它说的是“非法启动表达式,因为“private…”正试图启动一个新的代码块,但是Java解析器知道它还没有完成它所在的代码块。检查你的run()
方法。你缺少一个结束while循环的右括号。gameUpdate()方法声明随后被包含在上一个函数中(错误)您缺少结束While循环的括号。您没有关闭循环}
我建议您使用IDE为您指出这一点
您在系统之前缺少一个结束符。}退出(0);运行()两个缺少的结束括号!尝试使用一个编辑器来突出这些遗漏。Eclipse很大,但一旦您通过了学习曲线,它将真正帮助您。Notepad++很精简,但您必须自己检查匹配的括号(它会为您找到它们)。您在Run方法中缺少While循环的右大括号…..使用Netbeans、Eclipse等IDE进行开发…以避免缺少大括号,因为它们会在必要时自动插入。希望它能解决您的问题。如果缺少分号,请尝试:
私有void gameUpdate()您使用的IDE是否会在缺少右括号或右括号时出错?您应该这样做。看起来您缺少while循环上的右括号我不确定您的母语,但在英语中,您不需要每个单词都以大写开头。天哪,这么多相同的答案-这个世界在哪里明托。