编写一个程序来检查二维整数数组是否为方形数组,也就是说,它的行和列是否相等。我的代码如下
Write a program that checks if a 2-D integer array is a square array, meaning, if its rows and columns are equal. My code is below
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");
}
}
}
}
}
虽然你的逻辑是正确的,但是你在做多余的检查。理想情况下,您应该做的是使用 a.length
设置行长度。您应该使用 a[j].length
遍历每行一次,并检查行数是否等于每行中的值数(列数)。
如果不是,则打印'not a square'并跳出循环。保留一个标志,指示循环已明确停止。如果不是,标志保持不变,你可以断定它是一个正方形。
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");
}
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");
}
}
}
}
}
虽然你的逻辑是正确的,但是你在做多余的检查。理想情况下,您应该做的是使用 a.length
设置行长度。您应该使用 a[j].length
遍历每行一次,并检查行数是否等于每行中的值数(列数)。
如果不是,则打印'not a square'并跳出循环。保留一个标志,指示循环已明确停止。如果不是,标志保持不变,你可以断定它是一个正方形。
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");
}