Ввод в массив остановлен словом "выход" - PullRequest
0 голосов
/ 25 октября 2018

Мне нужно сделать Генератор результатов футбола.Я создал 4 массива по 10 элементов в каждом, но мне нужно включить цикл, который позволяет пользователю передумать и прекратить ввод, набрав «quit» после определенного количества записей.Не могли бы вы помочь - я новичок в программировании, так что это должно быть очень просто.

import java.util.Scanner;//

public class Football_Results_Generator
{
    public static void main(String[] args) 
    {
        Scanner kbd = new Scanner (System.in);


        String[] HomeTeam = new String[10];
        String[] AwayTeam = new String[10];
        int[] HomeScore = new int[10];
        int[] AwayScore = new int[10];

        int index = 0;
        int sum = 0;
        int sum1 = 0;

        do 
        {
            System.out.print("Enter Home Team Name: ");
            HomeTeam[index] = kbd.nextLine();
            System.out.print("Enter Away Team Name: ");
            AwayTeam[index] = kbd.nextLine();
            System.out.print("Enter Home Team Score:");
            HomeScore[index] = kbd.nextInt();
            System.out.print("Enter Away Team Score: ");
            AwayScore[index] = kbd.nextInt();
            kbd.nextLine();


        } while(index < 10);
        index = 0;

        System.out.println();   

        do 
        {
            System.out.println(HomeTeam[index] + " [" + HomeScore[index] + "]" + " | " + AwayTeam[index] + " [" + AwayScore[index] + "] ");
            index = index + 1;

        } while(index < 10);

        kbd.close();

        for(index = 0; index < 10; index++)
            sum += HomeScore[index];
            for(index = 0; index < 10; index++)
                sum1 += AwayScore[index];

        System.out.println();
        System.out.println("Totals");
        System.out.println("-------------------------------");
        System.out.println("Total number of matches played: " + index);
        System.out.println("Total of all home scores: " + sum);
        System.out.println("Total of all away scores: " + sum1);
        System.out.println("Total number of draws: ");
        System.out.println("The highest home score: ");
        System.out.println("The highest away score: ");

    }
}

1 Ответ

0 голосов
/ 25 октября 2018

позволяет пользователю изменить свое мнение и прекратить ввод, набрав quit после 5 попыток.

Использовать переменную temp для захвата ввода строки:

String line;
do 
{
    System.out.print("Enter Home Team Name: ");
    line = kbd.nextLine();
    if("quit".equalsIgnoreCase(line)){
        break;
    }
    HomeTeam[index] = line;
    .....
    index = index + 1; //missed
}while(index < 10);
index = 0;

Здесь, "quit".equalsIgnoreCase(line) будет гарантировать, что безотносительно к регистру line, например, "Quit", "QUIT", "quit" и т. Д. true

Как насчет целочисленного ввода в массив ??это та же концепция ??

Ну, вам нужно обработать исключение в случае, если ввод не является ни quit, ни int:

line = kbd.nextLine();
if("quit".equalsIgnoreCase(line)){
    break;
}
try{
    HomeScore[index] = new Integer(line);
} catch(NumberFormatException e){
    //Error conversion string to int
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...