Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 编译错误:表达式的开始非法_Java - Fatal编程技术网

Java 编译错误:表达式的开始非法

Java 编译错误:表达式的开始非法,java,Java,我正在学习Java(游戏方面)。我买了一本书,它有一些代码,我试图复制和测试它。唯一的问题是,当我试图编译它时,它会出现错误 C:\Users\James\Desktop\Java>Javac GamePanel.java GamePanel.java:57: illegal start of expression private vo

我正在学习Java(游戏方面)。我买了一本书,它有一些代码,我试图复制和测试它。唯一的问题是,当我试图编译它时,它会出现错误

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循环上的右括号我不确定您的母语,但在英语中,您不需要每个单词都以大写开头。天哪,这么多相同的答案-这个世界在哪里明托。