如果用户输入“。”字符,我该如何结束程序。还是“ - ”?

时间:2014-10-07 22:59:54

标签: java

我们正在更新我们之前的实验室,其中一个要求是,如果用户输入'。'或' - '我们必须输出一条消息,他们应该再次运行程序并退出程序。

这是我到目前为止所拥有的。我不确定是否必须为此程序使用循环。

System.out.print("\t Enter Employee Number: ");
employeeNumber = keyboard.next().charAt(0);
      if (employeeNumber == '.' && employeeNumber == '-'){
          System.out.println("\t Invalid Employee Number.");
          System.out.println("\t Please run the program again.");
          System.out.println("Thank you for using \"TEMPLE HUMAN RESOURCES\"");
          System.exit(0);

此外,变量employeeNumber是char。

3 个答案:

答案 0 :(得分:0)

你的问题是你的使用&&而不是||。

答案 1 :(得分:0)

由于两个原因,

employeeNumber == '.' && employeeNumber == '-'将始终返回false。

1。)您需要使用.equals()而不是==运算符,因为==是JVM中对象的特定位置的运算符,并且只会返回true被比较的对象是完全相同的对象。 equals()仅用于变量的值。因此,employeeNumber == '.'始终为false,但employeeNumber.equals('.')可能为真。

2。)employeeNumber.equals('.') && employeeNumber.equals('-')仍将始终为假,因为您使用的是逻辑和运算符(&&),而String一次不能等于2个值。相反,您需要使用逻辑或运算符(||)。您的代码应如下所示:

if (employeeNumber.equals('.') || employeeNumber.equals('-')) {
    // Exit the program

答案 2 :(得分:0)

在第3行,在if语句中,应该有一个Conditional-OR运算符。如果相邻条件为真或假,则进行比较。如果其中任何一个为真,则整个条件设置为true。

if (employeeNumber == '.' || employeeNumber == '-'){

您可能希望这样做,因为它会查看字符串的每个字符,并通过布尔值来判断它是真还是假。

String employeeNumber = keyboard.next();
Boolean works = true;
for(int a = 0; a < employeeNumber.length(); a++) {
    if (employeeNumber.charAt(a) == '.' || employeeNumber.charAt(a) == '-'){
        works = false;
    }
}
if(!works) {
    System.out.println("\t Invalid Employee Number.");
    System.out.println("\t Please run the program again.");
    System.out.println("Thank you for using \"TEMPLE HUMAN RESOURCES\"");
    System.exit(0);
}

条件AND运算符表示为“&amp;&amp;”并且只有当所有连接的表达式都为真时才将条件设置为true。