当前位置: 首页 > 知识库问答 >
问题:

当用户输入“是”时,程序继续

吕德惠
2023-03-14

好的,所以我的程序工作正常,但最后它会询问用户是否要输入另一组整数,如果他们键入“是”,则该过程重新开始。我的程序正在重新开始,但它保留所有相同的用户输入,因此它只是不断重复其原始输入的相同输出。

这是我的代码

import java.util.Scanner;

public class PositiveNegative {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("Input a list of integers (end with 0): ");
        int nums = input.nextInt();

        String answer;
        int pos = 0;
        int neg = 0;
        int total = 0;
        int count = 0;
        double avg = 0;

        do {
            while (nums != 0) {
                if (nums >= 1) {
                    pos++;
                } else {
                   neg++;
                }
                total = total + nums;
                count++;

                avg = total * 1.0 / count;

                System.out.print("Input a list of integers (End with 0): ");
                nums = input.nextInt();
            }
            System.out.print("# of positives are: " + pos + "\n" + "# of negatives are : " + neg + "\n" + "The total: " + total + "\n" + "The average: " + avg);
            System.out.print("\nWould you like to continue with new inputs? ");
            answer = input.next();
        } while (answer.equalsIgnoreCase("Yes"));
    }  
}

我当前的输出如下所示:

输入整数列表(以0结尾):1

输入整数列表(以0结尾):2

输入整数列表(以 0 结尾):-1

输入整数列表(以0结尾):3

输入整数列表(以0结尾):0

阳性数量为:3

否定的数量是:1

总数:5

平均:1.25

您要继续新的输入吗?是

阳性数量为:3

否定的数量是:1

总数:5

平均:1.25

是否要继续使用新输入?

它应该看起来像这样:

实际输入的数量:3

负输入数:1

总分:5.0

平均:1.25

您要继续新的输入吗?是

输入整数列表(以0结尾):0

除了0没有输入数字

你想继续新的输入吗?不

共有2个答案

从元明
2023-03-14

变量的声明应该在do…而块中,以便在用户想要继续时可以初始化它们。

取代

 int pos = 0;
 int neg = 0;
 int total = 0;
 int count = 0;
 double avg = 0;

 do{
     //...

具有

do {
    int pos = 0;
    int neg = 0;
    int total = 0;
    int count = 0;
    double avg = 0;
    //...
张权
2023-03-14

这样做

import java.util.Scanner;

public class PositiveNegative {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        String answer;
        do {
            System.out.print("Input a list of integers (end with 0): ");
            int nums = input.nextInt();

            int pos = 0;
            int neg = 0;
            int total = 0;
            int count = 0;
            double avg = 0;

            while (nums != 0) {
                if (nums >= 1) {
                    pos++;
                } else {
                   neg++;
                }
                total = total + nums;
                count++;

                avg = total * 1.0 / count;

                System.out.print("Input a list of integers (End with 0): ");
                nums = input.nextInt();
            }

            if(count == 0) {
                System.out.print("No numbers were entered except 0");
            } else {
                System.out.print("# of positives are: " + pos + "\n" + "# of negatives are : " + neg + "\n" + "The total: " + total + "\n" + "The average: " + avg);
            }
            System.out.print("\nWould you like to continue with new inputs? ");
            answer = input.next();
        } while (answer.equalsIgnoreCase("Yes"));
    }  
}
 类似资料:
  • 问题内容: 我有一个spring mvc应用程序,我想让我的用户称为bot,并且基于用户输入的bot应该访问url并根据响应提供答案。如何在Java中实现呢? 问题答案: 没有直接的方法可以做到这一点。但是,沃森对话确实提供了一种处理此类请求的机制。您将需要告诉调用Java的应用程序需要调用url。 这通过使用两个功能来完成:Context.request skip_user_input A 是具

  • 简而言之:如何让UITextField框在用户第一次按键时移除所有内容?我不希望信息被删除,直到用户开始输入一些东西。即,在开始编辑时清除它是不够的。 长版本:我有三个UITextField循环(使用返回键并在“shouldReturn”方法中捕获按键。UITextField 中已有文本,如果用户未键入任何内容,而只是转到下一个 UITextField,则该值应保留(默认行为)。 但是我希望如果用

  • 问题内容: 我试过了: 但这似乎不起作用。我希望程序等待用户输入,但是如果10分钟后没有用户输入,请继续执行该程序。 这是python 3。 问题答案: 为什么代码不起作用? 什么也不返回;成为的价值; 循环体未执行。 如何解决 如果您使用的是Unix,则可以使用。 否则,您应该使用线程。 Windows 使用的 特定解决方案:

  • 我正试图编写一个java程序,将货币转换作为一个类赋值。我的代码几乎完全按照我希望的方式工作。执行时,它将要求用户输入日元对美元的汇率。输入任意一个数字,它就会正常工作。 但是,它会提示用户输入他们想要兑换成日元的美元金额。同样,这个想法是输入任何 但如果你在下一个空行输入一个数字,它就会进行转换!你甚至可以用空格输入数字:10 20 50 100。。。它将在单独的行中转换所有这些内容。 我只是想

  • 嘿,我必须要求用户使用JOptionPane购买金额,如果他们输入超过两位小数点后,什么都没有,字符,或超过一个小数点,程序必须显示错误消息并停止。 我该怎么做? 我不希望有人为我写程序,只是一个链接,解释我将如何做 如果用户输入“12.526”或“1.3.25”或“abc”,我希望程序显示错误信息并停止。 因为这似乎是一个令人困惑的问题,或者我问得不正确,所以我的老师给出了正确的指导: 程序必须

  • 我已经看了这个程序几个小时了,但我仍然不明白其中的逻辑。程序要求用户输入整数。 一旦用户输入了整数,它将向用户输出所有的正数、负数和输入的总数,以及这些数字的平均值。 这是我陷入困境的地方: 然后它会询问用户是否要继续。用户将输入或以指示他们是否要继续。如果用户输入“y”,循环将再次进行,如果他们输入“n”,它将显示再见消息。我不知道如何设置。 我已经尝试了一个 do while 循环,我目前正在