- У вас может быть массив (например,
desiredCombination[]
в приведенном ниже коде) для хранения действительных входных данных. - У вас может быть
List
(например, List<String> allowedColors
в данном коде ниже) или массив допустимых цветов, с помощью которых необходимо проверить цвет ввода.
Сделайте это следующим образом:
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scannerObject = new Scanner(System.in);
String color;
int counter = 0;
List<String> allowedColors = List.of("R", "G", "B");
String[] desiredCombination = new String[5];
do {
System.out.print("Enter a color [R/G/B]: ");
color = scannerObject.nextLine();
// There is no element before desiredCombination[0] and therefore the colour for
// desiredCombination[0] does not require comparing with the one before it.
if (counter == 0 && allowedColors.contains(color.toUpperCase())) {
desiredCombination[counter++] = color;
} else if (allowedColors.contains(color.toUpperCase()) && !color.equals(desiredCombination[counter - 1])) {
desiredCombination[counter++] = color;
}
} while (counter < 5);
System.out.println("The desired combination is: " + Arrays.toString(desiredCombination));
}
}
Пробный прогон:
Enter a color [R/G/B]: R
Enter a color [R/G/B]: R
Enter a color [R/G/B]: G
Enter a color [R/G/B]: B
Enter a color [R/G/B]: R
Enter a color [R/G/B]: R
Enter a color [R/G/B]: B
The desired combination is: [R, G, B, R, B]
Важное примечание: Никогда не закрывайте Scanner
для System.in
, так как он также закроет System.in
, и у вас не будет возможности открыть его снова.