首页 > 解决方案 > 如何在 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
    
}

标签: javaeclipseloopsreturndo-while

解决方案


基本思想:

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;
    }
    ...
}

推荐阅读