인프런 커뮤니티 질문&답변

하마마마님의 프로필 이미지
하마마마

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

문제와 풀이2

메서드 - 문제와풀이2 예제

작성

·

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. 종료

---------------------------------------

가 반복 출력되는 이유는 무엇일까요?

 

  1. 해당 코드가 반복문도 아닌데 계속 반복되는 이유와,

  2. 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;
			}
		}
	}
}

감사합니다.

하마마마님의 프로필 이미지
하마마마

작성한 질문수

질문하기