Я борюсь с программой, которая позволяет пользователю выбирать между двумя цветами, набирая либо полный цвет (не чувствительный к регистру), либо символ, который является первой буквой цвета (не чувствителен к регистру), в зависимости от того, какой цвет они печатают его, автоматически присваивают другой переменной. Мои два варианта - синий и зеленый, синий, кажется, работает нормально, но когда я вводим зеленый или g, метод продолжает спрашивать меня о новом вводе. Ниже приведен фрагмент моей программы, посвященной назначению цвета.Подтверждение ввода нескольких цветов строки?
import java.util.*;
public class Test{
public static Scanner in = new Scanner (System.in);
public static void main(String []args){
System.out.println("Chose and enter one of the following colors (green or blue): ");
String color = in.next();
boolean b = false;
while(!b){
if(matchesChoice(color, "blue")){
String circle = "blue";
String walk = "green";
b = true;
}
else if(matchesChoice(color, "green")){
String circle = "green";
String walk = "blue";
b = true;
}
}
}
public static boolean matchesChoice(String color, String choice){
String a= color;
String c = choice;
boolean b =false;
while(!a.equalsIgnoreCase(c.substring(0,1)) && !a.equalsIgnoreCase(c)){
System.out.println("Invalid. Please pick green or blue: ");
a = in.next();
}
b = true;
return b;
}
}
Я в основном создавая время цикла, который страхует пользователь выбирает один из вариантов цвета и способа определения, соответствует ли входной строке пользователя опции Строки для вопроса.
Поскольку ваш поток код не является правильно, 'else if (matchesChoice (цвет,« зеленый »))' недоступен до тех пор, пока вы не введете «синий» или «b» – Jerry06
@ Jerry06, что вы подразумеваете, ввод синий или b необходим для достижения зеленого? –