Scanner데이터흐름과 break문의 2가지 사용법

장시영·2021년 12월 18일
0

문제점
1. Mainmenu 메서드를 실행하고 41행에서 click값을 1로 받았을 때 다시 35행 if문이 실행됨.

의도

41행에서 값을 입력받고 47행의 break문을 만나면 while 반복문을 탈출해 다시 28번행으로 가도록 하려함.

문제발생원인

break문은 2가지 사용방법이 있기 때문이다.
첫번째, switch 조건문의 탈출
두번째, 반복문의 탈출
여기서 나는 break문이 가까운 반복문을 탈출하는 것으로만 알고 while 반복문을 탈출해 처음으로 돌아갈 것이라 생각했는데 27번의 break문은 switch문을 탈출한 것으로 사용되었기 때문에 다시 35번행으로 돌아와 반복된 것이다.

해결방법

if문과 else if문 뒤에 break문을 모두 달아줌

  1. 41번행에서 click값을 2로 받았을 때 61행이 실행됨.

의도

위와같이 28행으로 가도록 하려함

문제발생원인

41행에서 값을 2로 입력받아 48행이 실행되고 break문으로 switch문을 빠져나오면 click에 입력한 값 2가 그대로 61번행으로 들어간다. 가장 바깥의 if문과 안쪽의 switch문에 입력되는 스캐너를 모두 같은 스캐너로 해서 문제가 발생했다.

해결방법

switch문의 스캐너를 click2로 바꾸어줌

profile
코딩주니어

0개의 댓글