Возможно, единственное, что читается. Вы можете взять значения и переместить их в более читаемые переменные:
int topLeft = mSqr[0][0];
int topMid = mSqr[0][1];
...
int sumLeft = topLeft + midLeft + bottomLeft;
int sumRight = topRight = midRight + bottomRight;
...
Чтобы решить вашу проблему уменьшения размера, я бы сказал, что преобразование сумм в циклы, как вы упомянули, безусловно, не стоит того, чтобы вы делали 6 сумм по 3 значения в каждой. Кроме того, каждый член каждой суммы является общим для одной или двух других сумм, что не дает большого совпадения. Если бы вы выполняли большие суммы (большее количество терминов в сумме, а не общее значение), то, возможно, это стоило бы для аргумента удобочитаемости / SLOC.
Предположим, что вы все еще хотите сделать цикл, вы можете сделать что-то вроде
sumLeft = 0;
sumRight = 0;
sumTop = 0;
sumBottom = 0;
sumDiagonalUp = 0;
sumDiagonalDown = 0;
for(int i = 0; i < mSqr.length; i++) {
for(int j = 0; j < mSqr[i].length; j++) {
if (i == 0) {
sumLeft += mSqr[i][j];
}
if (i == mSqr.length - 1) {
sumRight += mSqr[i][j];
}
if (j == 0) {
sumTop += mSqr[i][j];
}
if (j == mSqr[i].length) {
sumBottom += mSqr[i][j];
}
if (i == j) {
sumDiagonalDown += mSqr[i][j];
}
if (i + j == mSqr.length - 1) {
sumDiagonalUp += mSqr[i][j];
}
}
}
Петли дают преимущество только на больших магических клетках.
Также меня смущает ваше описание, противопоставленное вашей реализации. Кажется, вы суммируете каждую строку и столбец, а также две диагонали квадрата, в отличие от четырех сторон и диагоналей.