Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何防止程序在用户每次输入数字时要求用户输入数字?_Java_Java.util.scanner - Fatal编程技术网

Java 如何防止程序在用户每次输入数字时要求用户输入数字?

Java 如何防止程序在用户每次输入数字时要求用户输入数字?,java,java.util.scanner,Java,Java.util.scanner,当我运行代码时,当用户输入一个数字,并希望输入另一个数字时,每次都会弹出此窗口,请输入一个介于0和100之间的值,或-1退出: 例如: 请输入一个介于0和100之间的值,或输入-1退出: 100 请输入一个介于0和100之间的值,或输入-1退出: 0 请输入一个介于0和100之间的值,或输入-1退出: -1 平均值为:50.0 最大值为:100.0 最小值为:0.0 我希望能够让用户输入一个enter列表,而不使用此选项。请输入一个介于0和100之间的值,或-1退出:每次弹出 例如: 100 0

当我运行代码时,当用户输入一个数字,并希望输入另一个数字时,每次都会弹出此窗口,请输入一个介于0和100之间的值,或-1退出:

例如: 请输入一个介于0和100之间的值,或输入-1退出: 100 请输入一个介于0和100之间的值,或输入-1退出: 0 请输入一个介于0和100之间的值,或输入-1退出: -1 平均值为:50.0 最大值为:100.0 最小值为:0.0

我希望能够让用户输入一个enter列表,而不使用此选项。请输入一个介于0和100之间的值,或-1退出:每次弹出

例如: 100 0 -1 平均值为:50.0 最大值为:100.0 最小值为:0.0

请帮帮我。
编程新手

只需删除第一个while循环中打印该消息的行,该行位于输入之前的第一个while循环末尾。

更改循环样式,使用do while循环而不是while循环

基本上,您希望至少进入循环一次,例如

import java.util.Scanner;

public class AverageMaxMin 
{
    @SuppressWarnings("resource")
    public static void main(String[] arg)
    {
        int count = 0;
        double sum = 0;
        double maxium = 0;
        double minium = 100;

        Scanner kb = new Scanner(System.in);

        System.out.println("Please enter a value between 0 and 100, or -1 to quit: ");
        double input = kb.nextDouble();

         while (input != -1)
            {

             while ((input > 100) || (input <= -1))
              {
                 System.out.println(" Invalid! Please enter a value between 0 and 100, -1 to show the result: ");
                 input = kb.nextDouble();
              }

                count++;             
                sum += input; 

                if (maxium < input)
                {
                    maxium = input;
                }

                if (minium > input)
                {
                    minium = input;
                }


                System.out.println("Please enter a value between 0 and 100, or -1 to quit: ");
                input = kb.nextDouble();

            }
                double average = (sum / count);  
                System.out.println("The average is: " + average);
                System.out.println("The maxium is: " + maxium);
                System.out.println("The minium is: " + minium);

    }

}
import java.util.Scanner;

public class Test {

    @SuppressWarnings("resource")
    public static void main(String[] arg) {
        int count = 0;
        double sum = 0;
        double maxium = 0;
        double minium = 100;

        Scanner kb = new Scanner(System.in);

        double input = -1;
        // Main processing loop...
        do {

            // Validation loop...
            do {
                System.out.println("Please enter a value between 0 and 100, or -1 to quit: ");
                input = kb.nextDouble();
                kb.nextLine();
            } while (input > 100);

            if (input > -1) {
                count++;
                sum += input;

                if (maxium < input) {
                    maxium = input;
                }

                if (minium > input) {
                    minium = input;
                }
            }
        } while (input != -1);

        double average = (sum / count);

        System.out.println(
                        "The average is: " + average);
        System.out.println(
                        "The maxium is: " + maxium);
        System.out.println(
                        "The minium is: " + minium);

    }

}
这确实使用了两个循环,您可以将其减少为一个,并忽略任何超出范围的值,例如

import java.util.Scanner;

public class AverageMaxMin 
{
    @SuppressWarnings("resource")
    public static void main(String[] arg)
    {
        int count = 0;
        double sum = 0;
        double maxium = 0;
        double minium = 100;

        Scanner kb = new Scanner(System.in);

        System.out.println("Please enter a value between 0 and 100, or -1 to quit: ");
        double input = kb.nextDouble();

         while (input != -1)
            {

             while ((input > 100) || (input <= -1))
              {
                 System.out.println(" Invalid! Please enter a value between 0 and 100, -1 to show the result: ");
                 input = kb.nextDouble();
              }

                count++;             
                sum += input; 

                if (maxium < input)
                {
                    maxium = input;
                }

                if (minium > input)
                {
                    minium = input;
                }


                System.out.println("Please enter a value between 0 and 100, or -1 to quit: ");
                input = kb.nextDouble();

            }
                double average = (sum / count);  
                System.out.println("The average is: " + average);
                System.out.println("The maxium is: " + maxium);
                System.out.println("The minium is: " + minium);

    }

}
import java.util.Scanner;

public class Test {

    @SuppressWarnings("resource")
    public static void main(String[] arg) {
        int count = 0;
        double sum = 0;
        double maxium = 0;
        double minium = 100;

        Scanner kb = new Scanner(System.in);

        double input = -1;
        // Main processing loop...
        do {

            // Validation loop...
            do {
                System.out.println("Please enter a value between 0 and 100, or -1 to quit: ");
                input = kb.nextDouble();
                kb.nextLine();
            } while (input > 100);

            if (input > -1) {
                count++;
                sum += input;

                if (maxium < input) {
                    maxium = input;
                }

                if (minium > input) {
                    minium = input;
                }
            }
        } while (input != -1);

        double average = (sum / count);

        System.out.println(
                        "The average is: " + average);
        System.out.println(
                        "The maxium is: " + maxium);
        System.out.println(
                        "The minium is: " + minium);

    }

}

你认为System.out.println是做什么的?他说他不想每次都打印消息。这就是我的答案。我没有输入代码,因为我正在使用android应用程序,我不知道是否可以。但我本可以说得更清楚。