자바에서 강력한 코드를 작성하려고했지만 작동하지 않는 것 같습니다. 내가 찾고있는 것은 사용자가 입력을 입력하는 것인데, 프로그램은 필수 입력이 아닌 경우 입력을 검사하고 입력이 필요한 입력에 일치 할 때까지 적절한 입력을 다시 입력 할 수있는 옵션이 제공되며, 또는 단순히 그만 두십시오. 여기까지 내가 지금까지 가지고있는 것이있다. 이 코드를 실행하면 사용자가 잘못된 입력을 입력하고 종료하려고 할 때를 제외하고는 모든 것이 잘 작동합니다. while 루프는 사용자가 적절한 입력을 다시 입력하거나 종료 할 때 실행을 멈추지 않고 계속 실행됩니다. 이 작품을 어떻게 만들 수 있습니까?사용자 입력을 사용하여 어떻게 견고성을 유지할 수 있습니까?
//question
System.out.println("Summer, Winter, Fall, or Spring");
System.out.print("Which season is your favarite? ");
String favSeason = in.next();
System.out.println();
//Control the inputs by converting them to Upper Case
String favSeasonInput = favSeason.toUpperCase();
//required answers of the question
String seasons = "SUMMER, WINTER, FALL, SPRING?";
String quit = "QUIT!";
boolean isSeasons = (favSeasonInput.equals(seasons.substring(0, 6)) ||
favSeasonInput.equals(seasons.substring(8, 14)) ||
favSeasonInput.equals(seasons.substring(16, 20)) ||
favSeasonInput.equals(seasons.substring(22, 28)));
boolean isQuit = favSeasonInput.equals(quit.substring(0, 4));
//inialize variables that will compute scores
int favSeasonScore = 0;
//if user enters an input otherthan seasons
while (!isSeasons){
favSeason = in.next();
if(isQuit){
System.exit(0);
}
}
//Conditions to set up scores for seasons
if(favSeasonInput.equals(seasons.substring(0, 6))){
favSeasonScore = 6;
System.out.println("Summer is " + favSeasonScore + " points");
}
else if(favSeasonInput.equals(seasons.substring(8, 14))){
favSeasonScore = 14;
System.out.println("Winter is " + favSeasonScore + " points");
}
else if(favSeasonInput.equals(seasons.substring(16, 20))){
favSeasonScore = 20;
System.out.println("Fall is " + favSeasonScore + " points");
}
else if(favSeasonInput.equals(seasons.substring(22, 28))){
favSeasonScore = 28;
System.out.println("Spring is " + favSeasonScore + " points");
}
System.out.println(favSeasonScore);
코드를 이미지로 붙여 넣지 마십시오 여기에 붙여 넣으십시오 – Lokesh
여기에 코드를 붙여 넣으십시오. 어떤 오류가 발생합니까? –
기존 코드에 어떤 문제가 있습니까? –