Я хотел бы выйти из программы, если от пользователя не прочитан ввод (пустая строка) - PullRequest
0 голосов
/ 15 октября 2019

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

Я попытался создать массив символов и проверить длину. Если длина больше 0, это означает, что есть и ввод, поэтому он будет хранить ввод. Если длина равна 0, это означает, что нет ввода и, следовательно, выход из цикла.

do 
        {
            System.out.print("Enter an integer ('blank' to exit): ");
            String sInput=reader.next();
            char[] cArrInput=sInput.toCharArray();
            int iInput=cArrInput[0];
            if (cArrInput.length>0)
            {
                numbers[count]=iInput;  
                count=count+1;
            }
            else if (sInput.length()==0)
            {
                break;
            }
        }while(count<100);

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

Ответы [ 2 ]

0 голосов
/ 15 октября 2019

Проблема: Вы используете next () метод класса Scanner, который ожидает следующего ввода пользователя.

Решение:

Используйте метод nextLine () .

Использовать следующее:

        Scanner reader = new Scanner(System.in);
        int numbers[] = new int[100];
        int count=0;
        do
        {
            System.out.print("Enter an integer ('blank' to exit): ");
            String sInput=reader.nextLine();
            char[] cArrInput=sInput.toCharArray();
            if (cArrInput.length>0)
            {
                numbers[count]=cArrInput[0];
                count=count+1;
            }
            else if (sInput.length()==0)
            {
                break;
            }
        }while(count<100);
0 голосов
/ 15 октября 2019

Я предлагаю использовать nextLine вместо этого и нажимать <enter>.

Это упрощенная версия

do
{
      System.out.print("Enter an integer ('blank' to exit): ");
      String sInput=reader.nextLine();

      if (sInput.length()>0)
      {
          count=count+1;
      }
      else 
      {
          break;
      }
}while(count<100);
...