Имеется задание, в котором нужно проверить каждый массив на упорядоченность строго на убывание. Если он упорядочен - true.
почему на matrix[0][1] , когда идет сравнение с matrix[0][2] - цикл не прекращает свое сравнение, а проверяет дальше следующие массивы {5, 4, 3}, {8, 7, 6}}. Хотя я специально обозначил, что в случае нарушения убывания значений элементов массива - пойдет break.
public static void main(String[] args) throws Exception{
int[][] matrix = {{3, 2, 2}, {5, 4, 3}, {8, 7, 6}};
int bolshe;
boolean isSortedDescendant = false;
if (matrix.length == 0){
isSortedDescendant = true;
} else {
for (int i = 0; i < matrix.length; i++) {
bolshe = matrix[i][0];
for (int j = 0; j < matrix[i].length-1; j++) {
if (bolshe > matrix[i][j+1]) {
bolshe = matrix[i][j+1];
isSortedDescendant = true;
} else if (bolshe <= matrix[i][j+1]){
isSortedDescendant = false;
break;
}
}
}
}
System.out.println(isSortedDescendant);
}
}
Обратите внимание, что у вас вложенный цикл.
При использовании внутри набора вложенных циклов оператор break будет выходить только из самого внутреннего цикла.
Для решения данной задачи стоит воспользоваться метками break outer;
public static void main(String[] args) throws Exception{
int[][] matrix = {{3, 2, 2}, {5, 4, 3}, {8, 7, 6}};
int bolshe;
boolean isSortedDescendant = false;
if (matrix.length == 0){
isSortedDescendant = true;
} else {
outer: // Ставим метку
for (int i = 0; i < matrix.length; i++) {
bolshe = matrix[i][0];
for (int j = 0; j < matrix[i].length-1; j++) {
if (bolshe > matrix[i][j+1]) {
bolshe = matrix[i][j+1];
isSortedDescendant = true;
} else if (bolshe <= matrix[i][j+1]){
isSortedDescendant = false;
break outer; // Переходим к метке
}
}
}
}
System.out.println(isSortedDescendant);
}
Замечание: Break не проектировался в качестве нормального средства завершения цикла. Эту цель обслуживает условное выражение заголовка цикла. Оператор break следует использовать для прерывания цикла только тогда, когда возникают некоторые специальные ситуации.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники