执行基本if else语句的编译错误

时间:2013-08-18 19:13:06

标签: java

我使用数字有类似的代码,它完美地工作。然而,这继续强调其他字,我不知道为什么。我正在玩java试图理解一些原则。

我想编程根据输入回复两个语句中的一个。此外,在if (input1 == "Hello");的位置,我也希望if (input1 == "Hello" || "hello");接受小写,但也显示错误。

为了清楚起见,如果我删除了else子句,我的程序就会运行并打印两个语句!

import java.util.Scanner;

public class Input
{
    public static void main(String[] args) 
    {
    System.out.println("Hello there!");
    Scanner Scan = new Scanner (System.in);
    String input1 = Scan.nextLine();
    Scan.close();

    if (input1 == "Hello");
        {
            System.out.println("How are you?");
        }
        else
            System.out.println("How rude, you didn't even say Hello!");
            break;
        }
    }
}

5 个答案:

答案 0 :(得分:5)

绝不要使用==来比较字符串。

改为使用.equals

if (input1.equals("Hello"))

if (input1.equalsIgnoreCase("Hello"))

删除

末尾的分号
if (input1 == "Hello");

编辑: - 正如您对OR的评论中所见。

你可以试试这个: -

if(input1.equalsIgnoreCase("hello") || input1.equalsIgnoreCase("hey") || input1.equalsIgnoreCase("hi"))

答案 1 :(得分:2)

删除if语句末尾的;。并使用.equals()来比较字符串。

分号导致编译错误,而==一旦运行就会导致逻辑错误。

答案 2 :(得分:1)

你可能不想在分行上加分号

if (input1 == "Hello");

您可能实际上并不想使用==进行比较(请阅读有关比较字符串的链接问题)。

第三,为什么break条款中有else个陈述?

答案 3 :(得分:1)

您正在寻找equalsIgnoreCase()。这比较两个字符串而不考虑大小写。

答案 4 :(得分:0)

;语句条件之后删除if,并在{之后添加else。此外,最好在比较对象时使用equals(Object)方法,因为使用==时可能会出现意外结果。