사용자의 입력을 기반으로 응답을 내놓을 기본 인사말 프로그램이 있습니다. for 루프를 사용하여이 작업을 수행하려고합니다. 그러나 사용자가 다른 어레이에 저장된 "bad"또는 "you"값으로 응답 할 때마다 콘솔은 동일한 응답을 여러 번 인쇄합니다. 어떻게이 문제에 접근 할 수 있습니까? 나는 자바와 여기에 멍청하다. 이 답변에 이전에 답변 해 주시면 사과드립니다. 나는 수색했지만 찾지 못했습니다. 감사합니다.너무 많은 값을 인쇄하는 루프를 중첩했습니다. Java
import java.util.Scanner;
public class Greeter {
public static void main(String[] args) {
String[] greetings = { "well", "good", "great", "awesome", "fabulous" };
String[] bad_greetings = { "bad", "awful" };
String[] responses = { "you", "yourself" };
System.out.println("Hello there, how are you?");
String response;
Scanner scan = new Scanner(System.in);
response = scan.nextLine();
for (String greeting : greetings) {
if (response.contains(greeting)) {
System.out.println("Well, good for you!");
}
for (String b_greet : bad_greetings) {
if (response.contains(b_greet)) {
System.out.println("At least you have me.");
}
}
for (String reply : responses) {
if (response.contains(reply)) {
System.out.println("I'm well, thank you.");
// } else {
// System.out.println("Let's move on then.");
// }
}
}
}
}
}