我们正在更新我们之前的实验室,其中一个要求是,如果用户输入'。'或' - '我们必须输出一条消息,他们应该再次运行程序并退出程序。
这是我到目前为止所拥有的。我不确定是否必须为此程序使用循环。
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。
答案 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。