Чтение нескольких строк в Java с помощью сканера - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь прочитать в примере ввода:

3 //amount of games

//Game 1
2 2 //questions lies
bird 1 s //bird 1 a swan?
yes //answer
bird 2 d //bird 2 a duck?
no //answer

3 1
total d 4 and total g 7
yes
bird 1 s and bird 2 d and bird 3 s
yes
bird 1 g or bird 4 g
yes

2 0
total d 1
yes
bird 6 s or bird 1 d
yes

Как я могу прочитать этот ввод в терминах целых чисел, есть 3 Игры, которые мы собираемся сделать. Мне нужно все хранить, а потом идти оттуда.

Это то, что я имею до сих пор, я надеюсь, что я на правильном пути

public class Solution {
    public static void main(String[] arg){
        Scanner input = new Scanner(System.in);

        int Games = Integer.parseInt(input.nextLine());

        for(int i = 0; i == Games; i++){
             //go through game 1 and store them
             //repeat until game 3
        }

    }
}

1 Ответ

0 голосов
/ 03 сентября 2018

Я бы рекомендовал использовать Scanner.next() вместо Scanner.nextLine(), чтобы вы могли читать одно слово / число за раз. Ваш цикл for неправильный, вам нужно изменить его на:

for (int i = 0; i < Games; i++)
// or you can also use
while (Games-- > 0)

Я предпочитаю цикл while, потому что вы не хотите отслеживать номер цикла.

Например:

public class Solution { 
    public static void main(String[] args) throws IOException { 
        Scanner input = new Scanner(System.in))
        int games = Integer.parseInt(input.next());
        // loop for games
        while (games-- > 0) {
            int questions = Integer.parseInt(input.next());
            int lie = Integer.parseInt(input.next());
            // loop for questions
            while (questions-- > 0) {

                // do whatever logic you want to do and print the answer
            }
        }
    }
}
...