Я новичок в форуме И новичок в программировании. Я извиняюсь заранее, если мои вопросы действительно базовые, но я действительно новичок в этом, и мне пришлось многому научиться за очень короткое время, поэтому я могу пропустить пару концепций.Boolean не сломался для справки
На мой вопрос, У меня есть метод, который должен проверить, есть ли у матрицы все доступные пространства и остановить, если он найдет.
матрица была инициализирована, как это (я знаю, что это может быть в одной строке, а матрица создается в конструкторе объекта)
protected char[][] matJeu = null;
matJeu = new char[10][10];
Он тогда был заполнен пробелами, как это " 'с для постановки и она работает просто отлично
Вот метод
public boolean checkIfFull()
{
boolean full = true;
for (int i=0;i<matJeu.length || !full;i++)
{
for (int j=0;j<matJeu[i].length || !full ;j++)
{
if(matJeu[i][j]==' '){
full = false;
}
}
}
return full;
}
проблема заключается в том, что, когда полная булева превращается в ложь, то для петли d oesn't break и заканчивается тем, что вызывается исключение ArrayOutOfBounds. Если матрица заполнена, она просто возвращает true. Поэтому мне может быть не хватает правильного способа вызвать логическое прерывание цикла for.
Заранее благодарю вас за ваше время.
Почему бы не заменить 'full = false' на' return false'? –
@BJ Myers Это действительно сработало. Большое спасибо, но я все равно хотел бы знать, как я могу нарушить заявление в такой ситуации? Это единственный способ, если я хочу отменить оператор for с помощью логического? –
удалите '! Full' в цикле' for' и замените 'full = false;' с 'return false;' – Jerry06