Проблемы с обработкой массива

K раз подаются пары значений a и b, в массиве [1-10] нужно заменить все значения на 0, которые попадают в диапазон a и b включительно. Никак не могу понять, почему при обработке последней пары чисел, цикл останавливается не заменив на 0 значение b.

    for (int i = 0; i < K; i++) {
        int a = sc.nextInt();
        int b = sc.nextInt();
        for (int j = 0; j < arr.length ; j++) {
            if (arr[j] == a) {
                while (a<=b) {
                    arr[j] = 0;
                    ++a;
                    ++j;
                }
            }
        }
    }

ввод: 8 10; 2 5; 3 6; выводит: 1000067000


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

Автор решения: стасевич

пробуй....

public class TestTest {
    public static void main(String[] args) {
        int a = 1; //замени на скан
        int b = 8; // замени на скан
        int[] arr = {1, 2,12,15, 3, 4, 5, 11};
//проходим по всему массиву
        for (int i = 0; i < arr.length; i++) {
            //если i-тый элемент меньше либо b,
//            если i-тый элемент ,больше либо a
            // то заменяем его на 0
            if (arr[i] <= b && arr[i] >= a) {
                arr[i] = 0;
            }
        }
        System.out.println(Arrays.toString(arr)); //[0, 0, 12, 15, 0, 0, 0, 11]
    }
}
→ Ссылка
Автор решения: Сенька Кривой

вот рабочий вариант

for (int i = 0; i < K; i++) {
    int a = sc.nextInt();
    int b = sc.nextInt();
    for (int j = 0; j < arr.length; j++) {
        if ( j == a - 1){
            while (a <= b){
                arr[j] = 0;
                j++;
                a++;
            }
        }

    }
}
→ Ссылка