NumberFormatException не нарушает Java - PullRequest
0 голосов
/ 25 сентября 2019

Я новичок в этом, я не могу понять, как разорвать петлю.
`` `` `` `` `` Java````````````

        public static void main(String[] args) {

        Scanner input= new Scanner (System.in) ;
        System.out.println("Enter number list:");

        try {
        String data = input.nextLine();
        ArrayList<Integer> myArray = new ArrayList<Integer>();
        int num;

        while (true){

            num = Integer.parseInt(data);

             myArray.add(num);}
    }

            catch  (NumberFormatException e)    { 
                e.printStackTrace();}

Ответы [ 2 ]

3 голосов
/ 25 сентября 2019

Вы должны прочитать новые входы внутри вашего цикла:

try {
    ...
    while (true) { 

        num = Integer.parseInt(data);

        myArray.add(num);
    }
}
catch  (NumberFormatException e)  {

};

В настоящее время вы добавляете один и тот же вход бесконечное количество раз к вашему List.

PS. Возможно, вам не следует использоватьбесконечный циклКак вы планируете закончить чтение входных данных?Улавливая NumberFormatException, когда пользователь вводит неверный номер?Не рекомендуется использовать исключения как часть вашей логики.

0 голосов
/ 26 сентября 2019

Спасибо, вы получили его на работу

while(true) {
        Scanner input= new Scanner (System.in) ;
        System.out.println("Please enter a number or anything else to stop:");
        String data = input.nextLine();
        int num;

     try{

        num = Integer.parseInt(data);
        myArray.add(num);
        int arraySize;

        arraySize = myArray.size();
        Collections.sort(myArray);


    }   catch  (NumberFormatException e)    { 
        break;       

        }
     }
}
...