这段代码怎么错了?

时间:2015-02-16 20:11:09

标签: java

我在if语句的开始卷曲括号行显示错误的构造()错误,因为你可以看到我的System.exit(0);它的下面有一个分号。我觉得我的while循环有问题,因为我很少使用它们。有人可以帮助我吗?

public static void Rep ()throws IOException
{
    Check ();
    BufferedReader kb = new BufferedReader (new InputStreamReader (System.in));

    do
    {
        System.out.println ("");
        System.out.println ("Would you like to continue? [Y/N]");
        String ans = kb.readLine ();

        if (ans.equalsIgnoreCase ("y"))
        {
            Check ();
            System.out.println ("Hi");

        }
        else if
        {
            System.exit (0)
                ;

        }
        else
        {
            System.out.println ("");
            System.out.println ("Please enter Y or N:");
            ans = kb.readLine ();
            System.out.println ("");
        }



    }
    while (x != 1);

}

3 个答案:

答案 0 :(得分:1)

当您使用else if时,您必须向此if添加条件,例如:

else if (ans.equalsIgnoreCase ("x"))
{

}

你的是空的。

答案 1 :(得分:0)

如果条件

,您已跳过/丢失了其他人
else if (ans.equalsIgnoreCase("n"))
{
    System.exit(0);
}

我还建议不要将System.exit(0)用于此目的。在大多数情况下,简单的回报就足够了。

答案 2 :(得分:0)

由于kb.readLine:

,您还必须使用try-catch包围所有内容
public static void Rep ()
{
try { //  SURROUND EVERYTHING WITH TRY-CATCH.
    Check ();
    do
    {
        System.out.println ("");
        System.out.println ("Would you like to continue? [Y/N]");
        String ans = kb.readLine ();

        if (ans.equalsIgnoreCase ("y"))
        {
            Check ();
            System.out.println ("Hi");
        }
        else if ( CONDITION REQUIRED HERE! )
        {
            System.exit (0);
        }
        else
        {
            System.out.println ("");
            System.out.println ("Please enter Y or N:");
            ans = kb.readLine ();
            System.out.println ("");
        }
    }
    while (x != 1);
} catch ( Exception exc ) { System.out.println( exc.toString() ); }
}