gpt4 book ai didi

java - 尝试为出生年份创建 do while 循环

转载 作者:行者123 更新时间:2023-12-01 21:17:02 24 4
gpt4 key购买 nike

这就是问题所在。

编写一段 Java 代码,其中包含一个 do/while 循环,它将读取一个人的出生年份。出生年份必须是大于 1900 但小于 2016 的值,否则用户将收到错误消息。循环必须继续提示用户,直到输入有效值。

这就是我的回答

 private static double saveYears() {
double birthYear;
do {
try {
birthYear= Double.parseDouble(JOptionPane.showInputDialog("enter year you were born"));
}
catch (NumberFormatException e) {
birthYear= -1;
}
if (birthYear> 1990 || birthYear< 2016) {
JOptionPane.showMessageDialog(null, "Invalid number birth year.");
}
} while (birthYear<1990|| birthYear> 2016);

return birthYear;
}

这是正确答案吗?

最佳答案

首先,我假设您在 if 和 while 语句中指的是 1900 而不是 1990。

你已经很接近了,但是如果你看看你的 if 和 while 语句,它们实际上是在测试不同的东西。如果您更改 if 语句以匹配 while 语句,您将是正确的。

private static double saveYears() {
double birthYear;
do {
try {
birthYear= Double.parseDouble(JOptionPane.showInputDialog("enter year you were born"));
}
catch (NumberFormatException e) {
birthYear= -1;
}
if (birthYear < 1900 || birthYear > 2016) {
JOptionPane.showMessageDialog(null, "Invalid number birth year.");
}
} while (birthYear < 1900 || birthYear > 2016);

return birthYear;
}

更新:如果您不想在一个循环中两次检查出生年份,也可以这样做。

private static double saveYears() {
double birthYear;
while(true) {
try {
birthYear= Double.parseDouble(JOptionPane.showInputDialog("enter year you were born"));
}
catch (NumberFormatException e) {
birthYear= -1;
}
if (birthYear >= 1900 && birthYear <= 2016) {
break;
} else {
JOptionPane.showMessageDialog(null, "Invalid number birth year.");
}
return birthYear;
}

关于java - 尝试为出生年份创建 do while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39844285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com