작성
·
181
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
여기에 질문 내용을 남겨주세요.
package method.ex;
import java.util.Scanner;
public class MethodEx4 {
public static void main(String[] args) {
int balance = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("---------------------------------------");
System.out.println("1. 입금 | 2. 출금 | 3. 잔액 확인 | 4. 종료");
System.out.println("---------------------------------------");
while (true) {
System.out.print("선택: ");
int choice = scanner.nextInt();
switch (choice) {
case 1:
case 2:
case 3:
case 4:
System.out.println("시스템을 종료합니다.");
return;
}
}
}
해당 코드에서 switch문 4를 선택해도 return으로 main 메서드가 즉시 종료되지 않고,
---------------------------------------
1. 입금 | 2. 출금 | 3. 잔액 확인 | 4. 종료
---------------------------------------
가 반복 출력되는 이유는 무엇일까요?
해당 코드가 반복문도 아닌데 계속 반복되는 이유와,
4를 입력해도 코드가 즉시 종료되지 않는 이유가 궁금합니다.
해당 반복출력되는 부분을 while문 안에 넣어주니 4 입력시 코드가 즉시 종료되는데, 왜 이런 차이가 발생하는지 잘 모르겠습니다.
답변 부탁드립니다. 감사합니다.
답변 1
0
안녕하세요. 하마마마님, 공식 서포터즈 코즈위버입니다.
작성하신 코드를 돌려보면 1, 2, 3, 4 중 어떤 번호를 선택하더라도 즉시 "시스템을 종료합니다."를 출력하며 종료됩니다. 🙂
질문에서 말씀해주신 현상(반복문 밖에 있는 System.out.println 항목이 지속적으로 호출되는 현상)은 발생하지 않았습니다. 문제가 지속된다면 프로젝트를 다시 생성하여 진행해주시기 바랍니다. 아래는 제가 테스트 했던 코드 내역입니다.
package loop;
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("---------------------------------------");
System.out.println("1. 입금 | 2. 출금 | 3. 잔액 확인 | 4. 종료");
System.out.println("---------------------------------------");
while (true) {
System.out.print("선택: ");
int choice = scanner.nextInt();
switch (choice) {
case 1:
case 2:
case 3:
case 4:
System.out.println("시스템을 종료합니다.");
return;
}
}
}
}
감사합니다.