Это должно быть ваше исключение:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 6 out of bounds for length 6
at timba.main(timba.java:30)
Это вызвано тем, что ваш код позволяет мне вводить 7 элементов, когда я только указал, что я хочу ввести 6. Посмотрите на эту строку.
for(int i=0;i<arr.length;i++){
arr[i]=sc.nextInt();
}
Скажем, я указал, что n равно 5, поэтому длина массива равна 5, но это позволяет мне ввести 6. Это можно просто исправить, добавив -1 к коду.
for(int i=0;i<arr.length - 1;i++){
arr[i]=sc.nextInt();
}
Следующий фрагмент кода, на который мы должны обратить внимание:
for(int j=0;j<arr.length;j++){
arr[j]=arr[j+1];
}
Это распространенная ошибка, которую делают начинающие Java программисты. Это всегда будет go вне пределов, потому что, когда j = 4, тогда "arr [4] = array [5]", но ваш массив поднимается только до arr [4], потому что я только хотел ввести 5 элементов. Вот почему компилятор дал вам это исключение. Вы можете исправить это, добавив «-1», как и предыдущую ошибку, и это должно исправить это исключение.
for(int j=0;j<arr.length - 1;j++){
arr[j]=arr[j+1];
}
Ваш новый код должен быть
import java.util.Scanner;
public class timba {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int n,d;
n=sc.nextInt();
d=sc.nextInt();
int[] arr= new int[n];
for(int i=0;i<arr.length - 1;i++){
arr[i]=sc.nextInt();
}
while(d>0){
int t;
t=arr[0];
for(int j=0;j<arr.length - 1;j++){
arr[j]=arr[j+1];
}
arr[n-1]=t;
d--;
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
Это должно будь то для исключений, но вам также нужно исправить функциональность кода, поскольку он не дает вам ответ, который он должен. Я думаю, что это можно исправить, немного изменив и изменив время, пока l oop (может вызвать проблему. Int *)
Надеюсь, вам понравится ваше путешествие с Java. Хорошего дня и не забудьте остаться в безопасности!