Текст задачи "напишите простую программу, которая:
-запрашивает количество незнакомцев, с которыми нужно встретиться
-построчно читает имена незнакомцев
-построчно выводит: "Hello, (имя незнакомца)" для каждого незнакомца. Гарантируется, что введенное количество незнакомцев — целое число.
Частные случаи:
-Если количество незнакомцев равно нулю, программа должна вывести: "Oh, it looks like there is no one here".
-Если количество незнакомцев отрицательное, программа должна вывести: "Seriously? Why so negative?".
import java.io.IOException;
import java.util.Scanner;
public class HelloStrangers {
public static void main(String[] args) throws IOException {
Scanner Scanner = new Scanner(System.in);
int guests = Scanner.nextInt();
if (guests>0){
for (int i = guests; i>0; i--) {
String name = Scanner.nextLine();
System.out.println("Hello, "+ name);
}
} else if (guests==0){
System.out.println("Oh, it looks like there is no one here");
} else {
System.out.println("Seriously? Why so negative?");}
}
}
Проблема моего кода в том, что при вводе, например, "3" после нажатия энтера, я сразу же получаю "Hello," дальше я могу ввести имена двух персон, а не трёх. С ними всё как и должно быть: "Hello, (name)", после чего программа завершается Пробовал задать переменную гуэстс через System.in.read(). Но так только хуже было. Можно было именна вводить, до бесконечности Предложенный ранее ответ Особенности использования scanner.nextLine() если я , его правильно понял - не помог. Я добавил просто ещё одну переменную с Scanner.nextLine(), после переменной guests.
- После ввода например "3", и нажатия энтер, программа ничего не пишет (это правильно, так и должно быть)
- После ввода первого имени и нажатия энтер, вылетает 2 сообщения вместо одного
Helo,
Helo, (введённое имя)
- После ввода второго имени программа завершает работу
– adeptus astartes Aug 10 '22 at 20:18