Справка по вводу сканера ArrayList Java

Я пытаюсь написать код, в котором вы сортируете заданный список чисел, и я пытаюсь сделать это с помощью ArrayList. Я использую цикл while для повторного ввода. Это мой код:

import java.util.Scanner; 
import java.util.ArrayList;

public class sortinggg {

    public static Scanner keyboard = new Scanner(System.in);
    public static ArrayList<Integer> number = new ArrayList<Integer>();

    public static void main (String [] args) {

        int count= 0;

        System.out.println("Enter your numbers.");

        while (keyboard.hasNextInt()); {
            number.add(keyboard.nextInt()); 
        }

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

Проблема в том, что после ввода чисел, даже если я ввожу строку (например), программа не переходит к следующей строке кода. Я что-то здесь упускаю?

P.S. Я устал искать вопросы, которые задавались ранее по этой теме, но ни одно из предложенных решений не помогло мне. Заранее спасибо за вашу помощь!

while (keyboard.hasNextInt()); { Удалите точку с запятой. На этом ваше тело цикла заканчивается. number.add(keyboard.nextInt()); находится в другом (не петлевом) блоке.
Elliott Frisch 16.07.2018 20:36

@Elliott Frisch Замечены!

StuPointerException 16.07.2018 20:38

@ElliottFtisch Это исправило! Спасибо за вашу помощь, вы новичок в Java и кодировании в целом ..

Sirig Gurung 16.07.2018 20:42
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
795
2

Ответы 2

Попробуй это:

import java.util.ArrayList;
import java.util.Scanner;

public class Main
{
    public static void main(String args[])
    {
        Scanner keyboard = new Scanner(System.in);
        ArrayList<Integer> number = new ArrayList<Integer>();

        System.out.println("Enter your numbers:");

        while (keyboard.hasNextInt()) {
            number.add(keyboard.nextInt()); 
        }
    }
} 

Модификации:

  1. В while (keyboard.hasNextInt()); удалите semicolon(;) в конце.

Здесь while loop будет продолжать добавлять значения к arraylist, пока вы не предоставите значения типа int.

Во-первых, неправильный ; сразу после while. Он не дает вам казнить тело. Тогда как ты собираешься пропустить петлю. Вы можете попросить конечного пользователя ввести какое-то специальное значение и использовать его для разрыва цикла. Исправленная версия приведена ниже.

public static void main(String[] args) {
        int count = 0;

        System.out.println("Enter your numbers or -1 to skip.");

        while (keyboard.hasNextInt()) {
            int num = keyboard.nextInt();
            if (num == -1) {
                break;
            }
            number.add(num);

        }

        System.out.println(number);

    }

Другие вопросы по теме