Если я введу «0», «1», «2» или «3» (в указанном порядке), вывод программы будет идеальным. Если я введу целые числа в другом порядке, код не будет работать правильно. Например, если я сначала выберу «2», мой код ожидает, что я введу целое число три раза, чтобы получить правильный вывод. Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю не так?
Я пытался использовать операторы else-if, и когда я вводил что-либо, кроме '0', мне нужно было ввести целое число в количестве, равном порядковому номеру. Например, если я введу «2», мне нужно будет ввести его всего три раза, чтобы получить желаемый результат.
System.out.println("Please input a number between zero to 3");
for (int i = 0; i < 4; i++) {
if (sc.nextInt() == 0) {
System.out.println("You have selected " + right);
}
if (sc.nextInt() == 1) {
System.out.println("You have selected " + left);
}
if (sc.nextInt() == 2) {
System.out.println("You have selected " + up);
}
if (sc.nextInt() == 3) {
System.out.println("You have selected " + down);
break;
}
}
Мой ожидаемый результат должен быть:
This program simulates the 4 arrows RIGHT, LEFT, UP, DOWN using the numbers 0, 1, 2, 3 respectively
Please input a number between zero to 3
3
You have selected DOWN
1
You have selected LEFT
0
You have selected RIGHT
2
You have selected UP
Process finished with exit code 0
Этот вывод происходит, когда я размещаю их в правильном порядке. Если я начну с ввода '1', это произойдет:
This program simulates the 4 arrows RIGHT, LEFT, UP, DOWN using the numbers 0, 1, 2, 3 respectively
Please input a number between zero to 3
1
1
You have selected LEFT