Java 这个代码怎么会错?

Java 这个代码怎么会错?,java,Java,我在if语句的开头方括号行中出现了一个错误,称为misplaced construct(),因此您可以看到my System.exit(0);它的分号在下面一行。我觉得我的while循环有问题,因为我很少使用它们。有人能帮我吗 public static void Rep ()throws IOException { Check (); BufferedReader kb = new BufferedReader (new InputStreamReader (System.in

我在if语句的开头方括号行中出现了一个错误,称为misplaced construct(),因此您可以看到my 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);

}

使用
else if
时,必须向该
if
添加条件,如:

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

}

您的是空的。

您跳过/丢失了else if条件

else if (ans.equalsIgnoreCase("n"))
{
    System.exit(0);
}

我还建议不要为此使用System.exit(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() ); }
}

你在第二个if陈述中缺少实际情况。