Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays - Fatal编程技术网

Java 如何检查多个二维阵列的所有值是否都相同?

Java 如何检查多个二维阵列的所有值是否都相同?,java,arrays,Java,Arrays,我的主要问题是程序不能允许用户在程序要求值的所有时间只输入相同的数字 例如,用户需要输入9次值,而用户只输入9次“1”作为值,程序必须将其视为错误,这意味着应该有变化 尽管如此,用户有时仍然可以输入相同的值,但并非始终如此。用户可以输入“1”2x、3x、4x等,但不能输入9x 例如: 可以允许: 输入数字1:1 输入数字2:2 输入数字3:1 输入数字4:1 输入数字5:3 输入数字6:5 输入数字7:5 输入数字8:5 输入数字9:5 但是,这些是不允许的: 输入数字1:1

我的主要问题是程序不能允许用户在程序要求值的所有时间只输入相同的数字

例如,用户需要输入9次值,而用户只输入9次“1”作为值,程序必须将其视为错误,这意味着应该有变化

尽管如此,用户有时仍然可以输入相同的值,但并非始终如此。用户可以输入“1”2x、3x、4x等,但不能输入9x

例如:

可以允许:

输入数字1:1
输入数字2:2
输入数字3:1
输入数字4:1
输入数字5:3
输入数字6:5
输入数字7:5
输入数字8:5
输入数字9:5

但是,这些是不允许的: 输入数字1:1
输入数字2:1
输入数字3:1
输入数字4:1
输入数字5:1
输入数字6:1
输入数字7:1
输入数字8:1
输入数字9:1

对于输入部分:

        for (row=0;row<aa;row++)
            {
                for (col=0;col<aa;col++)
                {
                    System.out.print("Enter [" + row + "][" + col + "] = ");
                    array[row][col]=input.nextInt();
                }
            }

for(row=0;row将第一个输入放入变量。如果一个输入不等于该变量,则为有效输入。否则,可以拒绝该输入

考虑以下输入,这是无效的

11111
如果一个数字在任何一点发生变化,您将获得一个有效的输入。因此,用以下所有数字检查第一个输入就足够了。

Scanner input=new Scanner(System.in);
    Scanner input = new Scanner(System.in);
    int arr[] = new int[9];
    arr[0] = input.nextInt();
    boolean error = true;
    for (int i=1; i<9 ; i++)
    {
        arr[i] = input.nextInt();
        if (arr[i]!=arr[0])
            error = false;
    }

    if (error)
        System.out.println("Invalid");
    else
        System.out.println("valid");
int arr[]=新int[9]; arr[0]=input.nextInt(); 布尔错误=真; 对于(int i=1;i
int[]),数字数组={{1,4,3},{6,2,3};//不会给出错误的输入
//int[][]数字数组={{4,4,4},{6,2,3};//将给出错误的输入
int lastEnteredValue=0;
整数计数=0;
对于(int x=0;x0&&theNumberArray[x][k]==lastEnteredValue)
{
lastEnteredValue=数字数组[x][k];
计数+=1;
if(count==theNumberArray[x]。长度-1)
{
System.out.println(
“错误:由于连续”+
“输入相同的值!”);
系统退出(-1);
}
} 
否则{
lastEnteredValue=数字数组[x][k];
}
}
}
对于(int x=0;x
考虑重新表述您的问题,因为很难对您的问题进行概述。提供一些代码并展示您已经做出的努力通常是一个好主意,这样人们就不会误入歧途
    Scanner input = new Scanner(System.in);
    int arr[] = new int[9];
    arr[0] = input.nextInt();
    boolean error = true;
    for (int i=1; i<9 ; i++)
    {
        arr[i] = input.nextInt();
        if (arr[i]!=arr[0])
            error = false;
    }

    if (error)
        System.out.println("Invalid");
    else
        System.out.println("valid");
   int [][] theNumberArray = { {1,4,3},{6,2,3} };//inputs that will not give an error
   //int [][] theNumberArray = { {4,4,4},{6,2,3} };//inputs that will give an error 
   int lastEnteredValue = 0;
   int count = 0;


   for ( int x = 0; x < theNumberArray.length; x++ )
   {
        for ( int k = 0; k < theNumberArray[x].length; k++ )
        {

            if (k > 0 && theNumberArray[x][k] == lastEnteredValue) 
            {
                lastEnteredValue = theNumberArray[x][k];
                count += 1;

                if (count == theNumberArray[x].length - 1)
                {
                    System.out.println(
                    "Error : due to consecutively " + 
                    "inputting the same value!");
                    System.exit(-1);
                }
            } 
            else {
                lastEnteredValue = theNumberArray[x][k];
            }
        }
   }

   for (int x = 0; x < theNumberArray.length; x++)
   {
        for (int k = 0; k < theNumberArray[x].length; k++)
        {
            System.out.print(theNumberArray[x][k] + " ");
        }
            System.out.println();
   }