출처 : https://www.inflearn.com/course/java-codesquad/dashboard
필사 :
학습 목표
- 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
발생하는 에러를 해결하는 과정에 대해 알 수 있었다.
'국비학원 전 강의 필사 > JAVA 플레이그라운드' 카테고리의 다른 글
#26 반복 입력 가능하도록 프로그램 변경하기 - <JAVA플레이그라운드> (0) | 2022.08.24 |
---|---|
😊 #25 특정 달의 최대 일수 출력하기 해답 - <JAVA플레이그라운드> (0) | 2022.08.22 |
😊 #24 입력받은 월의 최대 일수 출력하기 - <JAVA플레이그라운드> (0) | 2022.08.19 |
#23 두 수의 합 구하기 풀이 - <JAVA플레이그라운드> (0) | 2022.08.19 |
😊 #22 입력받은 숫자의 합을 구하는 프로그램 작성하기 - <JAVA플레이그라운드> (0) | 2022.08.19 |
댓글