有没有办法缩短这个Java代码?
有没有办法在一段时间内验证身高和体重? 有没有办法测试有没有办法缩短这个Java代码?,java,Java,有没有办法在一段时间内验证身高和体重? 有没有办法测试 input.hasNextDouble()和height>5&&height 5&&height 0&&weight将公共代码定义为单个函数,并使用三元运算符内联if条件 public static double takeInput(String heightOrWeight, int lowConstraint, int highConstraint) { Scanner input = new Scanner(S
input.hasNextDouble()和height>5&&height 5&&height 0&&weight将公共代码定义为单个函数,并使用三元运算符内联if条件
public static double takeInput(String heightOrWeight, int lowConstraint, int highConstraint) {
Scanner input = new Scanner(System.in);
double validDouble = 0;
boolean isValid = false;
while(!(isValid)){
System.out.print(heightOrWeight + ": ");
input.nextLine();
validDouble = input.hasNextDouble() ? input.nextDouble(): Integer.MIN_VALUE;
if (validDouble > lowConstraint && validDouble <= highConstraint) {
isValid = true;
}
if (!isValid) {
System.out.println("Invalid input\nPlease try again\n");
}
}
return validDouble;
}
好的,显而易见的想法是将公共代码重构成一个可以共享的方法。这样的代码产生的一个好处是,您可以给出有用的错误消息。例如,“无效高度:必须介于5和500之间。”validDouble=input.hasNextDouble()是什么意思?input.nextDouble():-1;意思是?它是一个三元运算符<代码>变量x=(表达式)?如果值为真:如果值为假
而不是-1,则可以将任何Integer.MIN_值或其他不在范围内的数字放入
double height = takeInput("Height(cm)", 5,500);
double weight = takeInput("Weight(kg)", 0,500);