Имеется задание, в котором нужно проверить каждый массив на упорядоченность строго на убывание. Если он упорядочен - 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 следует использовать для прерывания цикла только тогда, когда возникают некоторые специальные ситуации.
С клиента получаю архив в base64, перевожу в utf, сохраняю, но архив оказывается битымОшибка и код ниже
При нажатии кнопки в центре карты появляется метка, нужно, чтобы новые метки были соединены с последней добавленной и при этом их все можно...