Повторить цикл for

Хочу чтоб цикл for повторился , но проверил 2 столбец матрицы, за счет value++;, и при проверке столбца выдало "упорядочен" или нет, столбец по убыванию. И как найти максимум в упорядоченном столбце(не верхний элемент(что логично), а чтоб код искал максимум при условии, что столбец упорядочен по убыванию P.S. это 1 столбец.

public static void main(String[] args) {
    int value = 0;
    int sum = 0; 
    int[][] mass = {{3,2,1},{2,2,3},{1,2,1},{0,3,1}};
    /*mass[0][0] = 3;
    mass[0][1] = 2;
    mass[0][2] = 1;
    mass[1][0] = 1;
    mass[1][1] = 2;
    mass[1][2] = 3;
    **/
    for (int i=0;i< mass.length;i++){

        for (int j=0;j< mass[i].length;j++){
            System.out.print(mass[i][j]+" ");

        }
        System.out.println();
}
    job:
for (int i = 0; i < 3; i++){
    if(mass[i][value] <= mass[i+1][value]){//проверка убывания

        System.out.println("Столбец1 не упорядочен");
        value++;
        continue job;}

    else{
       sum++;//чтоб не повторялось по 3 раза , что он упорядочен
    if (sum == 3){
    System.out.println("Столбец упорядочен");
    value++;
        continue job;
}
    value++;
        continue job;
    }


        }

Ответы (1 шт):

Автор решения: Дмитрий

Объясняете задачу вы , мягко говоря, непонятно. Посему вот вам методы длл получения по номеру колонки 2-мерного массива максимального и минимального значения, а также проверки на порядок по возрастанию и убыванию. 2 написаны циклами ,а 2 стримами.

public static boolean isDescending(int[][] mass, int columnNumb) {
    int tmp = Integer.MIN_VALUE;
    for (int[] mas : mass) {
        if (tmp > mas[columnNumb]) return false;
        else tmp = mas[columnNumb];
    }
    return true;
}
public static boolean isAscending(int[][] mass, int columnNumb) {
    int tmp = Integer.MAX_VALUE;
    for (int[] mas : mass) {
        if (tmp < mas[columnNumb]) return false;
        else tmp = mas[columnNumb];
    }
    return true;
}
public static int maxValueByColumn(int[][] mass, int columnNumb) {
    return valueByColumn(mass, columnNumb).max().getAsInt();
}
public static int minValueByColumn(int[][] mass, int columnNumb) {
    return valueByColumn(mass, columnNumb).min().getAsInt();
}
private static IntStream valueByColumn(int[][] mass, int columnNumb) {
    return IntStream.rangeClosed(0, mass.length - 1).map(i -> mass[i][columnNumb]);
}
→ Ссылка