Java 编写一个程序,检查二维整数数组是否为正方形数组,也就是说,它的行和列是否相等。我的代码在下面 打包作业; 公共课家庭作业85{ 公共静态void main(字符串[]args){ int[]a={ {1,1,1,2}, {1,1,1}, {1,1,1} }; int[]b={ {1,1,1,1}, {1,1,1,1}, {1,1,1,1} }; 对于(int i=0;i

Java 编写一个程序,检查二维整数数组是否为正方形数组,也就是说,它的行和列是否相等。我的代码在下面 打包作业; 公共课家庭作业85{ 公共静态void main(字符串[]args){ int[]a={ {1,1,1,2}, {1,1,1}, {1,1,1} }; int[]b={ {1,1,1,1}, {1,1,1,1}, {1,1,1,1} }; 对于(int i=0;i,java,arrays,for-loop,2d,variable-length-array,Java,Arrays,For Loop,2d,Variable Length Array,虽然您的逻辑是正确的,但您正在进行冗余检查。理想情况下,您应该使用a.length获得行长度。您应该使用a[j].length对每行迭代一次,并检查行数是否等于每行中的值数(列数) 如果不是,则打印“非正方形”并中断循环。保留一个标志,指示循环已明确停止。如果不是,则标志保持不变,您可以断定它是正方形 package Homeworks; public class HomeWork85 { public static void main(String[] args) { int[]

虽然您的逻辑是正确的,但您正在进行冗余检查。理想情况下,您应该使用
a.length
获得行长度。您应该使用
a[j].length对每行迭代一次,并检查行数是否等于每行中的值数(列数)

如果不是,则打印“非正方形”并中断循环。保留一个标志,指示循环已明确停止。如果不是,则标志保持不变,您可以断定它是正方形

package Homeworks;

public class HomeWork85 {
public static void main(String[] args) {


    int[][] a = {
            {1,1,1,2},
            {1,1,1},
            {1,1,1}
        };

    int[][] b = {
            {1,1,1,1},
            {1,1,1,1},
            {1,1,1,1}
        };

    for (int i=0; i<a.length;i++) {
        for (int j=0;j<a[i].length-1;j++) {
            if (a.length==a[j].length) {
                System.out.println("It is a square");
            }else {
                System.out.println("Not a square");
            }
        }
    }
}
}
int标志=0;

对于(int j=0;jMy result:Not a square Not a square Not a square它是一个正方形它是一个正方形它是一个正方形…问题是?它没有给我一个“It a square”或者它不是正方形。它告诉我它是正方形,它不是正方形。所以我不知道我做错了什么。谢谢你。你为什么要把flag=1和flag==0?这些数字代表什么?通常,flag是一个事件是否发生的指示器。在这种情况下,可能有两种结果,要么是正方形,要么是n所以在我的for循环中,我正在检查行和列长度(不是正方形)之间是否存在任何不匹配。因此,如果发生此事件,我将一些值设置为flag(1)。如果该值为1,则表示已决定该值不是平方,无需进一步处理。为了方便起见,我只使用了1和0,它可以是任意数字或布尔值。
int flag = 0;
for (int j=0;j<a.length;j++) {

        if (a.length != a[j].length){
            System.out.println("Not a Square!");
            flag = 1;
            break;
        }

}   
if (flag == 0){
    System.out.println("It is a Square");
}