0 / 0 / 0
Регистрация: 09.09.2015
Сообщений: 12
1

Сканнер in.nextLine(); не останавливает программу для ввода, а пропускается и выполняет след. строки

09.09.2015, 19:44. Показов 4206. Ответов 4
Метки нет (Все метки)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Test2 {
    public static void main(String[] args) {
 
        Scanner in = new Scanner(System.in);
        System.out.print("Enter a quantity of sentences: ");  //первый запрос
        int x = in.nextInt();
        System.out.println(" ");
        System.out.print("Enter a word: ");   //второй запрос
        String w = in.next();
        System.out.println(" ");
        System.out.print("Enter a sentence: "); //третий запрос
        String s = in.next();
        System.out.println(" ");
        System.out.print("Enter a sentence: ");  //четвертый запрос
        String a = in.nextLine();
Получается так: первый и второй запросы обрабатываются нормально, с ожиданием ввода с консоли.
а третий запрос выводится, но программа не ждет ввода с консоли, а переходит к четвертому зпросу.
В чем моя ошибка?
Язык только начал изучать.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2015, 19:44
Ответы с готовыми решениями:

Составить программу для ввода строки символов с клавиатуры в буфер и вывод этой строки на экран
Составить программу для ввода строки символов с клавиатуры в буфер и вывод этой строки на экран ...

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

Напишите программу которая запрашивает имя пользователя и пароль. Неверный ввод останавливает программу
Напишите программу которая запрашивает имя пользователя и пароль. Неверный ввод останавливает...

Написать программу для решения след. задачи
Написать программу для решения след. задачи X=\begin{cases} 5* a +b & \text{ , } a \gt b \\ ...

4
Автоматизируй это!
Эксперт Python
4982 / 3431 / 987
Регистрация: 30.03.2015
Сообщений: 10,599
Записей в блоге: 29
09.09.2015, 20:09 2
используй не String w = in.next(); а String w = in.nextLine();
и целое число лучше вот так считывать int x = Integer.parseInt(in.nextLine());
0
0 / 0 / 0
Регистрация: 09.09.2015
Сообщений: 12
09.09.2015, 21:40  [ТС] 3
перешел на BufferedReader
стало работать, но в конце выдает такую ошибку:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Test1.main(Test1.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.j ava:140)
вот код
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
 
public class Test1
{
 
    public static void main(String[] args) throws IOException
    {
        BufferedReader s = new BufferedReader(new InputStreamReader(System.in));
        Scanner in = new Scanner(System.in);
        //Scanner word = new Scanner(System.in);
        System.out.print("Enter a quantity of sentences : ");
        int x = in.nextInt();            //считываем количество строк
        System.out.println(" ");
 
        System.out.print("Enter a word : ");
        String t = s.readLine();     // считываем слово-поиск
        System.out.println(" ");
        int i;
        String[] sent = new String[x];
        for(i = 1; i <= x;i++ )
        {
            System.out.print("Enter " + i + " sentence");
               sent[i] = s.readLine();
        }
0
31 / 31 / 24
Регистрация: 08.06.2015
Сообщений: 107
09.09.2015, 21:46 4
Afranij,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
 
public class Test1
{
 
public static void main(String[] args) throws IOException
{
BufferedReader s = new BufferedReader(new InputStreamReader(System.in));
Scanner in = new Scanner(System.in);
//Scanner word = new Scanner(System.in);
System.out.print("Enter a quantity of sentences : ");
int x = in.nextInt(); //считываем количество строк
System.out.println(" ");
 
System.out.print("Enter a word : ");
String t = s.readLine(); // считываем слово-поиск
System.out.println(" ");
int i;
String[] sent = new String[x];
for(i = 0; i < x;i++ )
{
System.out.print("Enter " + i + " sentence");
sent[i] = s.readLine();
}
Добавлено через 17 секунд
Afranij,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
 
public class Test1
{
 
public static void main(String[] args) throws IOException
{
BufferedReader s = new BufferedReader(new InputStreamReader(System.in));
Scanner in = new Scanner(System.in);
//Scanner word = new Scanner(System.in);
System.out.print("Enter a quantity of sentences : ");
int x = in.nextInt(); //считываем количество строк
System.out.println(" ");
 
System.out.print("Enter a word : ");
String t = s.readLine(); // считываем слово-поиск
System.out.println(" ");
int i;
String[] sent = new String[x];
for(i = 0; i < x;i++ )
{
System.out.print("Enter " + i + " sentence");
sent[i] = s.readLine();
}
1
0 / 0 / 0
Регистрация: 09.09.2015
Сообщений: 12
09.09.2015, 21:54  [ТС] 5
Теперь получилось!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.09.2015, 21:54

Stm32f4 CooCox sscanf останавливает программу
Пытаюсь использовать эту функцию в проекте. Сначала добавляю в проект retarget printf, он начинает...

Пропускается первый оператор чтения строки с клавиатуры
Проблема в этом фрагменте кода. В консоли запрашивает сразу ввести activity, пропуская чтение с...

Галочка, которая останавливает/запускает программу в CheckBox
Dobryi denj! Na stranitse estj checkbox. Kak sdelatj tak, 4toby kogda user stavit tuda galo4ku...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.