package assignmentone;
import java.util.Scanner;
public class AssignmentOne {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Welcome to the University Credit Checker");
System.out.println("Enter Pass Credits");
if (in.hasNextInt()) {
int passCredits = in.nextInt(); //Correct
if (passCredits != 0 || passCredits != 20 || passCredits != 40
|| passCredits != 60 || passCredits != 80 || passCredits != 100 || passCredits != 120)
{
System.out.println("Error: Enter Valid Input Type: 0, 20, 40, 60, 80, 100 or 120");
} // Correct
else if (passCredits == 0 || passCredits == 20 || passCredits == 40 || passCredits == 60
|| passCredits == 80 || passCredits == 100)
{
System.out.println("Enter Defer Credits");
}
// Get rid of output Error: Enter Valid Input Type: 0, 20, 40, 60, 80, 100 or 120
else if (passCredits == 120){
System.out.println("Progress");
}
// Get rid of output Error: Enter Valid Input Type: 0, 20, 40, 60, 80, 100 or 120
} else {
System.out.println("Error: Enter Valid Input Type: Integer");
} //Correct
}
}
大家好。
我是Java的新手,我正在尝试创建一个使用用户输入的程序,以及用户验证。我创建了第一部分。
对于这部分,我有一个用户验证,以确保他们输入整数类型。哪个工作正常
在此之后,我有一个用户验证,以确保他们输入0,20,40,60,80,100和120.这将出现错误。这也正常。
什么不能正常工作当他们输入0,20,40,60,80或100的数字时,我希望显示“输入延迟信用”的简单输出。有了这个,我希望当用户输入120“简单输出”“进度”显示时。
对于这两个部分,“错误:输入有效输入类型:0,20,40,60,80,100或120”显示而不是预期的“输入延迟信用”或“进度”。
看看上面的代码,我想知道为什么会这样?目前我完全坚持为什么会这样。
提前致谢。 :)
答案 0 :(得分:1)
正如Faithiun回答的解释,你的逻辑运算符有误。
但是如果你使用一些数学逻辑,你可以减少布尔表达式的数量,减少错误的风险。
您的条件检查20的第一个倍数。使用% 20
,您可以获得更简单的解决方案
if( passCredits % 20 == 0){ //Is it a multiple
int multPass = passCredits / 20;
//divide by 20 to the position of that multiple (
//0 = 0
//20 = 1
//40 = 2
//...
if( multiPass >= 0 && muttipass <= 6){
// Enter Defer Credits
} else {
//Progress
}
} else {
//"Error: Enter Valid Input Type: 0, 20, 40, 60, 80, 100 or 120"
}
答案 1 :(得分:0)
替换
if (passCredits != 0 || passCredits != 20 || passCredits != 40
|| passCredits != 60 || passCredits != 80 || passCredits != 100 || passCredits != 120)
{
System.out.println("Error: Enter Valid Input Type: 0, 20, 40, 60, 80, 100 or 120");
}
通过
if (passCredits != 0 && passCredits != 20 && passCredits != 40
&& passCredits != 60 && passCredits != 80 && passCredits != 100 && passCredits != 120)
{
System.out.println("Error: Enter Valid Input Type: 0, 20, 40, 60, 80, 100 or 120");
} // Correct