자바 스캐너 질문입니다!

조회수 1861회

클래스 하나 생성후 필드선언하고 메소드선언할때 여러개 메소드에서 스캐너가 필요하면 각 메소드마다 스캐너를 선언하고 닫아줘야되나요??

그리고 여러개 클래스를 생성했는데 각클래스마다 스캐너가 필요할때는 스캐너를 어떻게 선언하는지 궁금합니다!


import java.util.Scanner;

class example

{

    int a,b,c;//예시용 임의 필드

    public void ex1
    {
        Scanner scanner = new Scanner(System.in);
        this.a=scanner.nextInt();
    }
    public void ex2
    {
        Scanner scanner = new Scanner(System.in);
        this.b=scanner.nextInt();
    }
}```
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 그렇게 하지 않고 for, while 의 반복문으로 반복처리합니다.

    클래스마다 필요해도 입력은 한곳에서만 받도록 설계해야 합니다.

    보통 아래와 같은 구조를 갖습니다.

    Scanner scanner=new Scanner(System.in);
    while (true) {
        System.out.println("Insert question code:");
        String question = scanner.nextLine();
        if(question.equals("quit")){    // quit 입력시 종료 
            break;
        }
        System.out.println("Insert answer code:");
        String answer = scanner.nextLine();
        if(answer.equals("quit")){
            break;
        }
        service.storeResults(question, answer);    // 처리할 클래스로 위임
    }
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)