프로그램이 만남에서 일찍 종료 될 수 있습니까?

Nov 25 2020

저는 사용자에게 질문을 받고 올바른 답을 제공해야하는 간단한 "게임"을 만들고 있습니다. 이것이 제가 현재 가지고있는 질문 중 하나에 대한 코드입니다.

public static void Mascot() {
    Scanner console = new Scanner(System.in);
    System.out.println("what Is our school mascot?");
    String Tony = console.nextLine();
    String b = Tony;
    Scanner scanner= new Scanner(b);
    if (scanner.hasNext("tiger")){
        System.out.println("Good, next riddle.");
    } else{ 
    }
    scanner.close();
    console.close();
}

if 문이 대소 문자를 구분하지 않고 tiger가 스캐너에 입력되면 true를 반환하고 싶습니다. 누군가가 스캐너에 전체 문장을 입력 할 수 있고 tiger라는 단어가 어디에나 있으면 true로 반환됩니다. 그러나 호랑이 (또는 스캐너에 다른 질문에 대한 다른 오답이 입력되면 프로그램을 중지하고 다음 질문으로 계속하지 않습니다.

답변

1 VinodJayachandran Nov 26 2020 at 05:45

여기서 주목할 몇 가지.

  1. 게임을 계속할지 여부는 메서드 호출자가 이상적으로 제어해야합니다. 메서드 호출자는 반환 값에 따라 true 또는 false를 결정해야합니다.
  2. (1) 메서드 서명을 수용하려면 변경해야합니다. 공허 할 수 없습니다. 부울이어야합니다.
  3. 호랑이 가 포함되어 있는지 확인하기 위해 두 번째 스캐너 개체가 필요하지 않습니다.

이 코드가 도움이되는지 확인하십시오.

public static boolean Mascot() {
        Scanner console = new Scanner(System.in);
        try {
            System.out.println("what Is our school mascot?");
            String b = console.nextLine();
           
            if (b.toLowerCase().contains("tiger")){
                System.out.println("Good, next riddle.");
                return true;
            } else{
                return false;
            }
        }
        catch(Exception e) {
            System.out.println("Exception Occurred");
        }
        finally {
            console.close();
        }
        return false;
    }