2016-10-11 6 views
0
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; 

ответ

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; 
} 
+0

Sorry @Tunaki; вы правильно поняли, что я написал это слишком быстро и не обращаясь достаточно внимательно к исходному коду. Теперь я отредактировал свой ответ. – Birchlabs

Смежные вопросы