Java –从用户输入重复一种方法

时间:2018-10-28 17:03:25

标签: java while-loop java.util.scanner

我想编写一个跟踪总线迟到次数的程序。

因此,要求用户输入一个int值,该值指示迟到了几分钟。

一旦输入负整数,程序应停止。

我遇到的麻烦是仅对0或更大的输入重复执行该程序。

无论输入什么int,程序都会重复执行。

我做了如下的事情:

import java.util.Scanner;

public class LateBus {

    public static void main(String[] args) {
        int enter_minutes = enterMinutes();
        loop(enter_minutes);
    }

    public static int enterMinutes() {
        Scanner enter = new Scanner(System.in);
        System.out.print("How many minutes late was the bus? ");

        int late = enter.nextInt();
        return late;
    }

    public static void loop(int a) {
        while (a >= 0) {
            enterMinutes();
        }
    }

}

2 个答案:

答案 0 :(得分:2)

让我们看看这个功能:

public static void loop(int a) {
    while (a >= 0) {
        enterMinutes();
    }
}

a的值永远不变。根据{{​​1}}的初始值,a >= 0将始终为真或从不为真。由于a在此函数内部使用,因此您不应将其作为参数传递。而且您应该确定要更改它:

a

现在您可以像这样调用函数:

public static void loop() {
    int a = enterMinutes();
    while (a >= 0) {
        a = enterMinutes();
    }
}

注意:

每个人在编写代码时都会犯逻辑错误。要找到它们,您需要学习如何调试。我建议您阅读https://ericlippert.com/2014/03/05/how-to-debug-small-programs/,以获取有关如何调试代码的一些提示,以便您可以自行发现此类问题。

答案 1 :(得分:0)

a为负数时,while循环将停止,但是您请勿更改其值。
这样做

while (a >= 0) {
    a = enterMinutes();
}

现在值更改为用户输入的内容。