как вввести число и столько же раз можно было ввести имён и потом их вывести?

пример ввода в консоли
3
Athos
Porthos
Aramis

Вывод в консоли:

Hello, Athos
Hello, Porthos
Hello, Aramis

А пример кода, приведенный выше, к сожалению, в таком виде не выводит информацию. Помогите, пожалуйста, разобраться. Вот пишу код

import java.io.IOException;
import java.util.Scanner;

public class HelloStrangers {
    public static void main(String[] args) throws IOException {
        //Write a program, asks for a number - amount of strangers to meet.
        //Then reads stranger names line by line and prints line by line "Hello, ...".
        Scanner scan = new Scanner(System.in);
        int number = scan.nextInt();
        if (number > 0) {
            String[] word = new String[number];
            int i;
            for (i = 0; i < number; i++) {
                word[i] = scan.nextLine();
            }
            for (i = 0; i < number+1; i++) {
                System.out.println("Hello, " + word[i]);
            }
        }
        else if (number ==0 )
        { System.out.println("Oh, it looks like there is no one here");
        }
        else  {
            System.out.println("Seriously? Why so negative?");
        }
        
    }

    }

Что за throws IOException? До исключений в java еще не добрался))) Не судите строго))


Ответы (1 шт):

Автор решения: had0uken

Поправил вашу программу в 2ух местах: Ошибки пометил в коде с помощью слешей ///////

1 ошибка) вы вычитываете целое число сканером, а потом нажимаете Enter, который передает символ \n - переход на новую строку, который в итоге записывается в ваш массив words под 0 индексом. Обойти данную проблему можно добавим строку scan.nextLine(); она "съест" лишний \n. И тогда вы будете в ваш массив уже записывать непосредственно имена.

2 ошибка ) в последнем for цикле выходите за пределы массива и получаете исключение. - Так же поправил.

По поводу исключений, в данной программе они вам не нужны. Поэтому убрал throws IOException. - Разберетесь в них когда дойдете до этой темы. Пока можете не вдаваться в подробности. Тема достаточно обширная чтобы одним ответом объяснить обработку исключений. Это целый раздел.

public class HelloStrangers {
    public static void main(String[] args)  {
        //Write a program, asks for a number - amount of strangers to meet.
        //Then reads stranger names line by line and prints line by line "Hello, ...".
        Scanner scan = new Scanner(System.in);
        int number = scan.nextInt();
        scan.nextLine();///////
        if (number > 0) {
            String[] word = new String[number];
            int i;
            for (i = 0; i < number; i++) {
                word[i] = scan.nextLine();
            }
            for (i = 0; i < number; i++) { ///////
                System.out.println("Hello, " + word[i]);
            }
        }
        else if (number ==0 )
        { System.out.println("Oh, it looks like there is no one here");
        }
        else  {
            System.out.println("Seriously? Why so negative?");
        }

    }

}

Консоль

3
Athos
Porthos
Aramis
Hello, Athos
Hello, Porthos
Hello, Aramis

Process finished with exit code 0
→ Ссылка