【发布时间】:2023-01-08 13:44:42
【问题描述】:
我正在制作一个简单的抵押贷款计算器,并在继续使用下一个方法之前尝试通过两个“if 语句”验证两件事。我要检查的第一件事是扫描仪的输入是否为整数。如果是,那么我想检查整数是否在 1,000 到 1,000,000 之间。
下面是具体代码:
public static Integer checkPrincipalValidation(Scanner scanner) {
while (true) {
if (scanner.hasNextInt()) {
principal = parseInt(scanner.nextLine());
if (principal >= 1_000 && principal <= 1_000_000) {
break;
}
System.out.println(scanner.nextLine() + " is not between 1,000 and 1,000,000. Please enter correct Principal (1K - $1M):");
}
if (!scanner.hasNextInt()) {
System.out.println(scanner.nextLine() + " is not a valid integer. Please enter correct Principal (Integer):");
}
}
return principal;
}
如果有兴趣,下面是整个文件:
import java.util.Scanner;
import static java.lang.Float.parseFloat;
import static java.lang.Integer.parseInt;
public class Validation {
static int principal;
public static Integer checkPrincipalValidation(Scanner scanner) {
while (true) {
if (scanner.hasNextInt()) {
principal = parseInt(scanner.nextLine());
if (principal >= 1_000 && principal <= 1_000_000) {
break;
}
System.out.println(scanner.nextLine() + " is not between 1,000 and 1,000,000. Please enter correct Principal (1K - $1M):");
}
if (!scanner.hasNextInt()) {
System.out.println(scanner.nextLine() + " is not a valid integer. Please enter correct Principal (Integer):");
}
}
return principal;
}
public static Float checkInterestValidation(Scanner scanner) {
while (true) {
if (scanner.hasNextFloat() || scanner.hasNextInt()) {
if (scanner.hasNextInt()) {
return parseFloat(scanner.nextLine());
}
return scanner.nextFloat();
} else {
System.out.println(scanner.nextLine() + " is not a valid rate");
System.out.print("Please enter correct Rate: ");
}
}
}
public static Integer checkPeriodValidation(Scanner scanner) {
while (true) {
if (scanner.hasNextInt()) {
return scanner.nextInt();
} else {
System.out.println(scanner.nextLine() + " is not a valid period");
System.out.print("Please enter correct Period (Years): ");
}
}
}
}
当它通过第一个“if 语句”时,我必须在进入第二个“if 语句”之前输入两次数字。为什么?感谢您的时间。我没有编码一年,所以我非常生疏,而且对 Java 仍然非常陌生,哈哈!
【问题讨论】:
-
请提供minimal reproducible example。当问题出现在第一个并且其他人没有被调用时,您不需要添加其他验证方法。但是你应该提供你如何调用该验证方法,调用之前发生了什么,有哪些输入?
标签: java if-statement while-loop