你如何检查输入的数组值是否相同?

我的程序应该确保用户输入的每个值都在 10-100 之间。然后将该值存储在数组中。那部分工作正常。另一个条件是用户输入的值必须与所有其他数组不同。即...array[0]=20 所以所有其他数组不能再设置为 20。我一直在尝试解决这个问题,但我只是不知道该去哪里。我在 while(userInput < 10 || userInput > 100) 之后尝试设置语句以检查任何重复并且有效。问题是用户可以输入小于 10 和大于 100 的值。任何帮助将不胜感激!


public static void main(String[] args) {

    //Creating scanner object

    Scanner input = new Scanner(System.in);

    int[] array = new int[5];

    int counter = 0;


    while(counter < 5)

    {

        for(int x = 0; x < array.length; x++)

        {

            System.out.print("Enter number between 10 & 100: ");

            int userInput = input.nextInt();


            while(userInput < 10 || userInput > 100)

            {                

                System.out.print("Please enter number between 10 & 100: ");

                userInput = input.nextInt();

            }


            array[x] = userInput;

            System.out.println(array[x]);

            counter++;


        }


    }


    System.out.println();

    System.out.println("The value of Array[0]: " + array[0]);

    System.out.println("The value of Array[1]: " + array[1]);

    System.out.println("The value of Array[2]: " + array[2]);

    System.out.println("The value of Array[3]: " + array[3]);

    System.out.println("The value of Array[4]: " + array[4]);        


}

}


HUH函数
浏览 201回答 3
3回答

梵蒂冈之花

您应该摆脱 for 和 second while 循环,并检查输入的值是否在所需范围内。如果是,则验证重复项,将其存储在数组中并增加计数器。如果不是,则显示错误的输入消息。无论哪种方式,它都会继续请求有效输入,直到计数器达到 5。我希望它有帮助!

蓝山帝景

首先,摆脱嵌套循环。他们是多余的。让我们看看您的问题的规格。您的输入需要满足 3 个要求:大于等于10小于或等于 100成为数组内的唯一元素前两个条件很简单,可以检查。对于最终条件,您需要搜索数组中的值并查看是否有与您的输入匹配的值。如果是,则输入无效。解决这个问题的一个简单方法是检查数组的每个成员,如果发现重复就停止。有更好、更有效的方法来做到这一点。不要害怕搜索互联网来学习搜索算法。以下是您问题的简单解决方案。它远非理想或高效,但对于初学者来说很容易理解。import java.util.Scanner;public class Main {&nbsp; &nbsp; public static void main(String[] args) {&nbsp; &nbsp; &nbsp; &nbsp; Scanner in = new Scanner(System.in);&nbsp; &nbsp; &nbsp; &nbsp; int[] array = new int[5];&nbsp; &nbsp; &nbsp; &nbsp; int counter = 0;&nbsp; &nbsp; &nbsp; &nbsp; int userInput;&nbsp; &nbsp; &nbsp; &nbsp; while(counter < 5) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print("Enter a number between 10 & 100: ");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; userInput = in.nextInt();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if( (userInput >= 10 && userInput <= 100) && !searchDuplicates(array, userInput) ) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; array[counter] = userInput;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; counter++;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("Invalid value entered");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp;for(int i = 0; i < array.length; i++)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println("Value " + (i + 1)&nbsp; + ": " + array[i]);&nbsp; &nbsp; }&nbsp; &nbsp; private static boolean searchDuplicates(int[] array, int input) {&nbsp; &nbsp; &nbsp; &nbsp; for(int i = 0; i < array.length; i++)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(array[i] == input)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return true;&nbsp; &nbsp; &nbsp; &nbsp; return false;&nbsp; &nbsp; }}

慕莱坞森

counter当 varx为你做同样的事情时不要使用变量。当两个循环的限制条件需要进行检查,不要使用嵌套循环一起在每个迭代。尽可能将这些循环合并为一个循环。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java