首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java -重复来自用户输入的方法

Java -重复来自用户输入的方法
EN

Stack Overflow用户
提问于 2018-10-29 01:03:25
回答 2查看 1.1K关注 0票数 0

我想写一个程序来记录一辆公交车晚点了多少次。

因此,要求用户输入一个int值,表示迟到了多少分钟。

一旦输入了负的int,程序就应该停止。

我遇到的问题是让程序只对0或更多的输入进行重复。

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

我做了类似如下的事情:

代码语言:javascript
复制
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();
        }
    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-29 01:12:32

让我们看一下这个函数:

代码语言:javascript
复制
public static void loop(int a) {
    while (a >= 0) {
        enterMinutes();
    }
}

a的值永远不会改变。根据a的初始值,a >= 0将始终为真或永远不为真。由于此函数在内部使用了a,因此不应将其作为参数传递。并且您应该确保更改它:

代码语言:javascript
复制
public static void loop() {
    int a = enterMinutes();
    while (a >= 0) {
        a = enterMinutes();
    }
}

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

代码语言:javascript
复制
public static void main(String[] args) {
    loop();
}

注意:

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

票数 2
EN

Stack Overflow用户

发布于 2018-10-29 01:09:01

a为负值时,while循环将停止,但您不能更改其值。

像这样做

代码语言:javascript
复制
while (a >= 0) {
    a = enterMinutes();
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53034010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档