对角星挑战,不明白它的概念?

  • 本文关键字:明白 挑战 java loops
  • 更新时间 :
  • 英文 :


下面是对角线星形挑战的解决方案,它基本上根据指定参数的值打印出星形。现在我了解了嵌套循环是如何工作的,i将与j的索引进行比较,但我不明白的是,当只有1个if语句时,它是如何在每行中打印出星号的?如果循环满足其中一个条件,它不应该只在每行打印出一颗星吗?为什么它从一个if语句中创建了这么多不同的模式?

public static void printSquareStar(int number) {
if (number < 5) {
System.out.println("Invalid Value");
} else {
for (int i = 0; i < number; i++) {
for (int j = 0; j < number; j++) {
if (i == 0 || j == 0 || i == j || i == (number - 1) ||
j == number - 1 || i + j == (number - 1)) {
System.out.print("*");
}
//none of these operations work then just leave a space
//on that column
else {
System.out.print(" ");
}
}
//creates a new row
System.out.println();
}
}
}

输出:

*****
** **
* * *
** **
*****

在If语句中,它会打印符合条件的*I或j。||是或,所以它说如果(i==0或j==0 or i==j or i==(数字-1(OR j==数字-1 OR i+j==(数字-1((,然后打印一个*,但如果i或j不适合,则打印一个空格。你可以对其他每一个案例都有一个if-else,这样会更容易阅读。

最新更新