Почему переменная "score" не получает в итоге значение 10
package BaseCode;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Task03_Self {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] list = new int[10];
System.out.println("Введите последовательность из 10-ти целых чисел:");
for (int i = 0; i<10; i++) {
list[i] = Integer.parseInt(reader.readLine());
}
int count1 = 0, count2 = 1, score = 0;
for (int i = 0; i<10; i++);{
if (list[count1] < list[count2]){
count1++;
count2++;
score++;
}
}
if (score == 10){
System.out.println("Ваша последовательность возростаюшая");
}
else {
System.out.println("Ваша последовательность невозростаюшая");
}
}
}
Ожидается что пользователь введет следующие цифры: 1 2 3 4 5 6 7 8 9 10
Ответы (1 шт):
Автор решения: Storozhev DJ
→ Ссылка
Странно, что при работе не выдает ошибку выхода указателя массива за диапазон, ведь когда i равен 9, count2 будет равняться 10 (изначально равнялся 1 плюс 9 итераций), а в массиве находятся значения с индексами от 0 до 9.
И если вдруг последовательность введенных будет нарушена, и будет уменьшение, то не выполнится условие if(...), не произойдет инкремента указателей на массив, следовательно не все значения массива будут пройдены.
Напишите более подробные условия задания. Если нужно только убедиться, что последовательность строго возрастающая, то достаточно будет сделать так:
for (int i = 0; i < 9; i++){
if (list[i] >= list[i+1]){
System.out.println("Ваша последовательность невозростаюшая");
return;
}
}
System.out.println("Ваша последовательность возростаюшая");