繁体   English   中英

虽然循环打印不希望的结果

[英]While loop printing the undesired outcome

我遇到了不受欢迎的 output 代码块 {sum、total、average、even、odd} 的问题。 当我输入 -1 时,不希望它打印这个块,而是说“谢谢。再见。”。 代码运行良好,顺便说一句,我只需要帮助确定该块的放置位置以产生所需的结果。 提前致谢!

public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    int sumOfNumbers = 0;
    int loopCounter = 0 ;
    int oddValues = 0;
    int evenValues = 0;

    System.out.println("Give numbers:");
    int inputValue = scanner.nextInt();

    while (inputValue == -1)
    {
        System.out.println("Thx! Bye!");
        break;
    }

    while (inputValue!= -1)
    {
        if (inputValue % 2 == 0)
        {
            evenValues++;

        }

        else
        {
            oddValues++;
        }

        loopCounter++;
        sumOfNumbers += inputValue;
        inputValue = scanner.nextInt();

        if(inputValue == -1)
        {
            System.out.println("Thx! Bye!");
            break;
        }

    }
            System.out.println("Sum:"+sumOfNumbers);
            System.out.println("Total numbers entered: "+loopCounter);
            System.out.println("Average:"+sumOfNumbers/(double)loopCounter);
            System.out.println("Even:"+evenValues);
            System.out.println("Odd:"+oddValues);

}

}

Image #1 是所需的 output,正如我所做的那样

图片#2是我遇到的问题

您需要首先从循环中收集基本信息

import java.util.Scanner;

public class Test {

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

        int totalNumbersEntered = 0;
        int sum = 0;

        int input = -1;
        do {
            input = scanner.nextInt();
            // Remove the danlging new line
            scanner.nextLine();

            if (input != -1) {
                totalNumbersEntered += 1;
                sum += input;
            }
        } while (input != -1);
        System.out.println("Thx! Bye!");
        System.out.println("Sum: " + sum);
        System.out.println("totalNumbersEntered: " + totalNumbersEntered);
    }
}

因为您没有存储输入值以供以后使用,所以您可以使用循环来计算输入值的总数并同时对它们求和。 一旦用户输入-1并存在循环,您就可以执行其他计算,例如平均。

你能想到你需要在哪里跟踪偶数/奇数值吗?

有关详细信息,请参阅控制流语句while 和 do-while 语句

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM