Как узнать, что такое логическая ошибка?

Сделана программа для поиска куба из отдельных целых чисел, заданных в строке, разделенной пробелом.

Это программа. В нем есть какая-то логическая ошибка. Он работает для любого случая, когда вводится символ.

class Cube{

    void process(){
        int i=0,sum=0,j;
        int cube;
        int ar[]=new int[100];
        Scanner scan=new Scanner(System.in);
        while(scan.hasNext()){
            if(scan.hasNextInt()){
               ar[i]=scan.nextInt();
               i++;
            }
            else{
                scan.next();
            }
        }     
        for(j=0;j<=i;j++){
            cube=ar[j]*ar[j]*ar[j];
            sum=sum+cube;
        }
        System.out.print(sum);
    }  
    public static void main(String args[]){
        Cube obj=new Cube();
        obj.process();
    }
}

Входной сигнал дается через онлайн компилятор: 1 2 3 4 5 или любой длины

1 ответ

  1. Если input находится в одной строке, как 1 2 3 4 5 вы можете использовать это, чтобы принять вход в качестве строки, а затем проанализировать его в String array.

    Scanner scan=new Scanner(System.in);
    String line[] = scan.nextLine().split(" "); //split by space
    for(int i=0;i<line.length;i++){
    int val = Integer.parseInt(line[i]);
    int cube = val*val*val;
    }