Я уже устал сидеть и проверять, где я мог ошибиться, есть подозрения, что по условию в последних ячейках нечетных строк отсутствует какой-либо символ
package com.javarush.task.jdk13.task06.task0634;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
/*
Шахматная доска
*/
public class Solution {
public static char[][] array;
public static void main(String[] args) throws IOException {
//напишите тут ваш код
Scanner sc = new Scanner(System.in);
int arrayOf = sc.nextInt();
array = new char[arrayOf][arrayOf];
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
if (i % 2 == 1 && j % 2 == 0) {
System.out.print(' '); // в нечетной строке четная позиция белой ячейки
}
if (i % 2 == 1 && j % 2 == 1) { // в нечетной строке четная позиция черной ячейки
System.out.print('#');
}
if (i % 2 == 0 && j % 2 == 1) { // в четной строке нечетная позиция белой ячейки
System.out.print(' ');
}
if (i % 2 == 0 && j % 2 == 0) { // в четной строке четная позиция черной ячейки
System.out.print('#');
}
}
System.out.println();
}
}
}
if (((i + j) & 1) == 0)(тут ещё хитрость что бы просто проверяем последний бит числа что он равен 0 как у любого чётного числа, но можно и традиционно с помощью % 2) если условие выполняется, то выводим '#', а иначе... т.к. других вариантов не остаётся, то даже проверку делать не надо, сразу ' '. И уж совсем чтобы быть ленивым, тогда уж и заполняем массив заодно:System.out.print(array[i][j] = '#');