본문 바로가기
국비학원 전 강의 필사/JAVA 플레이그라운드

#27 종료 조건을 이용해 반복하기 - <JAVA플레이그라운드>

by kkooHan 2022. 8. 24.

 

출처 : https://www.inflearn.com/course/java-codesquad/dashboard

 

[무료] 만들어 가면서 배우는 JAVA 플레이그라운드 - 인프런 | 강의

는 마스터즈코스 화이트레벨을 수강하기 위한 준비단계입니다. 대상은 코딩을 전혀 경험해보지 않았던 분들을 위한 과정입니다. 기존의 이론 위주로 학습 방식이 아니라 무엇인가를 만들어가

www.inflearn.com

 

 

 

 

 

 

필사 :

 

학습 목표

 - if를 사용한다

 - 반복문을 사용한다.

 

 

요구 사항

 - 전 단계와 비슷하게 반복입력을 받을 수 있게 구현한다.

 - 입력하는 곳 앞에 프롬프트를 출력한다.

 - -1일 입력받을 경우 프로그램을 종료한다.

 

 

입력 및 출력 예시

 

 

힌트 및 검색 키워드

앞 단계와 마찬가지로 for와 while 중에 적당한 키워드를 고민해 본다.

java print without newline

 

 

 

 

 

문제의 조건이 몇 가지 달라졌다.

 

 1. 프롬프트

 2. -1 입력 시 종료.

 

 

 

깜빡깜빡 거리는 커서 앞에 있는 부분을

프롬프트라고 한다

 

 

 

프롬프트 만들기.

System.out.print(">");

println이 아니라 print이다.

 

 

		String PROMPT = "cal> ";
		
		Scanner scanner = new Scanner(System.in);
		Calendar cal = new Calendar();
		
		System.out.print(PROMPT);

PROMPT를 정의해서 코드를 깔끔하게 수정.

 

 

 

콘솔 창에

위와 같이 좀 더 프로그램처럼 입력할 곳을 알려주는 것이

프롬프트이다.

 

 

반복횟수를 모르고

-1일 때 프로그램이 끝나도록 만들어야 하므로

이럴 때는 for이 아니라 while을 쓴다.

 

 

month가 -1이 아니면 반복되도록 while을 적어준다.

		while(month != -1) {

 

위와 같이 에러가 났는데, month값이 정해지지 않아서 그렇다.

아무거나 -1이 아닌 값으로 month 값을 정해준다.

 

 

에러가 사라짐

 

 

실행해보면 잘 된다.

(개인적으로 줄을 나눠 주는 게 좋을 것 같아 출력문구에 \n 추가했다.)

 

 

-1을 입력하니 에러가 났다.

IndexOutOfBoundsException

-1을 입력하면

month에 -1이 들어가고

cal.getMaxDaysOfMonth(-1)이 무조건 실행된다.

 

 

while(month != -1) { 대신

while(true) { 로 무한루프 돌리기.

위와 같이 수정해준다.

 

 

if에는 break나 continue를 쓸 수 있다.

 

 

13을 넣으면 또 에러가 난다.

 

 

			if (month > 12) {
				continue;
			}

continue를 만나면 처음으로 돌아간다.

 

 

커밋 & 푸쉬를 까먹지 말라!

 

 

 

 

 

느낀점 : 

 

무한루프

 

if ~~ break, continue

 

발생하는 에러를 해결하는 과정에 대해 알 수 있었다.

댓글