해결된 질문
작성
·
359
답변 2
2
안녕하세요?
콜센터가 있고 대표번호를 통해 전화를 걸면 가입 또는 해지 부서로 연결될 수 있다고 가정하겠습니다. 이 경우 다음과 같이 어떤 메뉴가 있는지를 먼저 알려주고 나서 사용자로부터 Scanner 를 통해 입력을 받고 입력값에 따라 서로 다른 동작을 하도록 할 수 있습니다.
public class CallCenter {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("메뉴를 입력하세요 (가입 또는 해지)");
String selection = sc.next();
if (selection.equals("가입")) {
System.out.println("신규 가입 안내");
} else if (selection.equals("해지")) {
System.out.println("서비스 해지 안내");
}
}
}
즉, 프로그램을 일단 실행한 다음에 메뉴를 선택하는 것이라고 보면 됩니다.
메뉴를 입력하세요 (가입 또는 해지)
가입 <= 사용자가 직접 입력
신규 가입 안내
반면에 콜센터 대표번호가 아닌 가입 부서와 해지 부서로 직접 연결할 수 있는 번호가 있다고 가정하겠습니다. 그러면 매번 대표번호로 연결한 뒤에 부서를 선택할 필요 없이 처음부터 원하는 부서로 전화를 걸면 되겠죠. 이 역할을 Edit Configurations... 를 통해서 할 수 있습니다. 프로그램을 실행할 때 어떤 값들을 입력받도록 하면 프로그램 내에서 사용자에게 물어볼 필요 없이 바로 그에 해당하는 동작을 수행하게 됩니다. 가령 아래와 같이 코드를 작성해보겠습니다.
public class CallCenter {
public static void main(String[] args) {
if (args[0].equals("가입")) {
System.out.println("신규 가입 안내");
} else if (args[0].equals("해지")) {
System.out.println("서비스 해지 안내");
}
}
}
이 때 전달값에 해당하는 args 는 IntelliJ 내에서 바로 입력하도록 하기 위해 Edit Configurations 내에서 설정할 수 있는데, 실제로 우리가 만든 CallCenter 라는 자바 프로그램을 IntelliJ 가 아닌 명령창 (또는 다른 프로그램) 에서 직접 실행하는 경우에 다음과 같이 할 수 있습니다.
D:\JavaWorkspace\out\production\JavaWorkspace>java CallCenter 가입
신규 가입 안내
D:\JavaWorkspace\out\production\JavaWorkspace>java Callcenter 해지
서비스 해지 안내
이 때 src 폴더가 아닌 out 폴더임을 주의해주세요. CallCenter.java 파일은 IntelliJ 에서 실행하게 되면 빌드라는 과정을 거치게 되고 그 결과로 out 을 포함한 경로 내에 CallCenter.class 라는 파일이 생성됩니다. 이를 java.exe 라는 명령을 통해 위 예제처럼 실행할 수 있고, 전달값으로 '가입' 또는 '해지' 를 직접 입력할 수 있게 됩니다. 그러면 우리가 만든 자바 프로그램을 다른 프로그램에서 실행해야 하는 경우에 사용자로부터 수동으로 '가입' 또는 '해지' 라는 입력값을 Scanner 를 이용하여 받는 과정을 거칠 필요 없이 직접 전달할 수 있겠지요.
궁금증 해결에 도움되었으면 좋겠습니다 😊
감사합니다.
0