java - 以更简单的方式编写代码

标签 java magic-square

int[][] board = new int[i][i];
int row = 0;
int col = i / 2;
int num = 1;
while (num <= i * i) {
    board[row][col] = num;
    num++;
    int tCol = (col + 1) % i;
    int tRow = (row - 1) >= 0 ? row - 1 : i - 1;
    if (board[tRow][tCol] != 0) {
        row = (row + 1) % i;
    } else {
        row = tRow;
        col = tCol;
    }
}
System.out.println("Number of wins: " + ifCorrect);
M.Print(i, board);

上面的代码是创建幻方的代码。如何以更简单的形式编写下面的代码,以便 Java 初学者能够理解?

int tRow = (row - 1) >= 0 ? row - 1 : i - 1;

最佳答案

简化线路(对于初学者程序员):

int tRow = (row - 1) >= 0 ? row - 1 : i - 1;

让我们扩展三元表达式,并将 (row-1) >= 0 简化为等效的 row >= 1:

int tRow;
if (row >= 1) {
    tRow = row-1;
} else {
    tRow = i - 1;
}

关于java - 以更简单的方式编写代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39978391/

相关文章:

java - compareTo() 与 equals() 不一致时的结果

java - 如何通过 LibGdx 使用 Google Play 游戏服务

algorithm - 如何创建具有常量行列总和的 1's and 0' 的对称矩阵

java - 求解单偶幻方 (Lux)

c - 打印二维数组会打印垃圾(Magic Square)

java - Magic Square 程序帮助 (Java)

java - 幻方最终值始终为真

java - 使用条件 API 删除?

java - 如何在同一类中的静态方法中抛出异常

java - 编写此 Java 代码的最简洁/最佳方法是什么?