java - 如何在 while 循环内返回用户输入值?
问题描述
我想返回 userYear,或者换句话说,用户给我的输入。它告诉我在循环外初始化变量。当我这样做时,它告诉我变量是重复的。我想做的只是返回输入,以便我的其他程序方法可以使用它们。
public static int readTheYear() {
Scanner scan = new Scanner(System.in);
boolean correctYear = false;
do
{
System.out.println("Enter theyear:");
int userYear = Integer.parseInt(scan.nextLine());
if(userYear > 2025)
correctYear = true;
else
System.out.println("Invalid. Try again.");
}
while (!correctYear);
correctYear = false;
return userYear; // gives an error
}
解决方案
基本思想:
int userYear;
...
do {
...
userYear = ... // no 'int' here!!
...
} while (...);
...
return userYear;
注1:不需要 if
,只需correctYear = userYear > 2025;
注2:根本不需要correctYear
:
int userYear;
...
do {
...
userYear = ...
// no if here
...
} while (userYear <= 2025);
...
return userYear;
替代方案,正如乔恩所建议的那样:
...
while(true) {
...
int useYear = ...
if (...) {
return useYear;
}
...
}
推荐阅读
- java - java转换列表
- reactjs - 如何在反应 ts 中在单个 onClick 计数上制作多个按钮?
- python - 如何在单独的文件中使用 FastAPI Depends 的端点/路由?
- spring - spring 仅对某些方面 bean 启用 aspectj-autoproxy
- python - Heroku 收集静态手册
- meeting-request - Google Meet:如何获取网址?
- javascript - Tempalte 文件不会在浏览器中更新
- vaadin - Vaadin 14:交换组合框下拉图标
- reactjs - React typescript - 类型必须有一个返回迭代器的“[Symbol.iterator]()”方法
- python - python - 如何在python中保存一个特定列的数据类型必须为int32的csv文件?