为什么我的else语句留下错误?

时间:2019-05-11 04:01:46

标签: java

嗨,我是Java的初学者,我想知道为什么我收到其他错误消息(“ else without'if')”。

public class Exercise6 {
    public static void main(String[] args) {
    String user = Input.askString("Username:");
    String pass = Input.askString("Password:");
    if (user.equals("joe") || pass.equals("guess"));
    {
        System.out.println("Welcome, joe!");
        } 
            else
        {
            System.out.println("Incorrect username or password.");    


    }
}
}

2 个答案:

答案 0 :(得分:1)

查看代码后,If语句后为is或分号(;)。在那种情况下,如果语句将在那里结束,则其他将被单独忽略。所以正确的是在这里:

public class Exercise6 {
    public static void main(String[] args) {
    String user = Input.askString("Username:");
    String pass = Input.askString("Password:");
    if (user.equals("joe") || pass.equals("guess"))
    {
        System.out.println("Welcome, joe!");
        } 
        else
        {
            System.out.println("Incorrect username or password.");    
        }
    }
}

您也可以这样做;

public class Exercise6 {
    public static void main(String[] args) {
    String user = Input.askString("Username:");
    String pass = Input.askString("Password:");
    if (user.equals("joe") || pass.equals("guess"))
        System.out.println("Welcome, joe!");
     else
        System.out.println("Incorrect username or password.");    
    }
}

这是因为如果在if or else部分中只有一个语句,那么就不需要大括号了。。我希望您有主意。

答案 1 :(得分:0)

类似于您尝试检查用户名和密码。您的OR条件也有误。请参阅我的代码中的更改。 需要替换||到&&

然后从if条件中删除分号

 public class Exercise6 {
        public static void main(String[] args) {
        String user = Input.askString("Username:");
        String pass = Input.askString("Password:");
        if (user.equals("joe") && pass.equals("guess"))
        {
            System.out.println("Welcome, joe!");
            } 
                else
            {
                System.out.println("Incorrect username or password.");    
        }
    }
    }