我如何 return while 循环内的用户输入值?
How do I return the user input value inside of a while loop?
我想要return userYear,或者换句话说,用户给我的输入。它告诉我在循环外初始化变量。当我这样做时,它告诉我变量是重复的。我想做的只是 return 输入,以便我的其他程序方法可以使用它们。
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;
}
...
}
您需要做的是在 while 循环外声明变量“userYear”。那是因为 while 循环有它自己的作用域,并且在它内部声明的变量只在这个循环中起作用。
在 Java
中阅读有关范围的更多信息
我想要return userYear,或者换句话说,用户给我的输入。它告诉我在循环外初始化变量。当我这样做时,它告诉我变量是重复的。我想做的只是 return 输入,以便我的其他程序方法可以使用它们。
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;
}
...
}
您需要做的是在 while 循环外声明变量“userYear”。那是因为 while 循环有它自己的作用域,并且在它内部声明的变量只在这个循环中起作用。 在 Java
中阅读有关范围的更多信息