끝을 보는 용기

Spring 사전캠프 Day 024 - 자바(Java) 공부: 조건문 (3/3), 반복문

writingforever162 2024. 10. 30. 18:39

오답 노트-자바(Java)1

 

오답 노트-자바(Java)2

 

오답 노트 카테고리를 새로 만들었다.

 

어제 실습 결과를 TIL에 녹여낸 후 잠들려는 찰나, 의도와 다른 문장이 출력된 순간이 머릿속을 스쳐서 이불을 박차고 일어났다.

 

'이런 실수를 적어 놔야 반복하지 않겠구나.'

 

워낙 끄적이기를 좋아하지만, 이때 기록의 중요성을 다시 몸소 느꼈다. 오답 노트 제목은 실수한 날짜와 어떤 내용인지 간략하게 보일 정도로 적었다. 제목을 보고 뭐였는지 떠올리지 못한다면, 그 부분은 스펀지처럼 뻥 뚫린 셈 치기로 했다. 공부한 내용에 뿌옇게 낀 안개를 물리치겠다고 맨 처음 장소로 돌아가서 다시 달릴 준비를 하기에는 시간도 없고 효율이 떨어지니까, 이런 식으로 구멍만 쏙쏙 잡아내기로 했다. 대표 이미지에 일부러 'REVIEW 001'이라고 세 자릿수로 적었는데 100 안으로 끝나면 좋겠다.

 

오늘은 'Part.3 조건문, 반복문' 강의를 모두 들었다. 내일부터 데일리 스크럼(Daily Scrum)과 회고 시간에 종종 언급된 '배열'을 배우는데, 강의 분량이 기존의 두 배라서 조금은 걱정된다. 접하는 내용을 모두 머릿속에 차곡차곡 집어넣으면 정말 좋겠지만, 그런 욕심은 오래 유지하기 힘들다. 강의에서 기억할 사항 딱 한 개만 골라서 제대로 익혀야겠다. 담담한 표정으로 익숙하게 'public static void main(String[] args)' 코드를 입력하듯이 몸에 밸 정도로.

 

[습관 관련]

출석 체크만 하고 다시 잠을 청한지 오늘로 삼일째, 단순히 체력 문제가 아니라 밤에 30분 이상 뒤척이며 수면 시간이 줄어든다는 사실을 깨달았다. '코드 한 줄만 더 작성해 봐야지', '아, 대문자와 소문자 구분 잘못했다' 등등 자바 프로그램을 조금만 더 붙잡으면 어느새 자정을 훌쩍 넘기곤 했다. 문제는 그때에 이르면 피곤하다는 생각과 다르게 깊은 잠에 빠지지 못하는 상태가 되었다. 저번에 맞춤 정장처럼 꼭 맞는 취침 시간을 찾자고 다짐했는데, 자정 이후는 확실히 몸에 안 맞는다는 점을 체감했다. 오늘 밤부터 토요일 밤까지 나흘 동안 생각해 둔 시간에 잠들고 일어나기로 했다. 일요일 아침까지 잘 실천된다면 본캠프 기간에도 체력을 유지하며 공부할 수 있다. 여태껏 실패한 만큼, 꼭 이번에는 해내서 성공 후기를 일요일 밤에 적고 싶다.

 

[인용 및 참고 출처]

1. 강의: 클래스101 온라인클래스, "[100제 풀이] 예제로 마스터하는 Java(자바) 종합 클래스", 강의 소개, (2024.10.30)

2. 구글 검색: 티스토리, "자바 삼항 연산자 영어로", 삼항연산자(ternary operator), (2024.10.30)

3. 사전: "ternary", 네이버 영어사전, 네이버 영어사전, (2024.10.30)

4. 구글 검색: 티스토리, "자바 삼항 연산자 반환값", 자바 기본 문법-삼항 연산자, (2024.10.30)

 

[학습 관련]

1. 자바의 조건문 - 삼항 연산자 

public class TernaryOperatorPrac {
    public static void main(String[] args) {
       // 사전 속 ternary는 '셋으로 이루어지는'을 의미한다.
       // 삼항 연산자는 항목 3개를 가지고 연산해 주는 연산자이다.
       // 항목 3개는 조건식 1개와 반환값 2개이다.
       // [구조] 조건식? 조건식이 참일 때 반환값 : 조건식이 거짓일 때 반환값
       // [주의 사항] 반환값이 어느 타입의 변수에 저장되는지 확인하라!

       // [1] 정수형 타입 int 변수 hour 선언 및 12로 초기화
       int hour = 12;
       
       // [2] 삼항 연산자 활용1
       int result = hour <= 10 ? hour*50 : hour;
       // [A] hour가 10보다 작거나 같으면 hour*50 실행
       //     즉 hour에 50을 곱한 값이 result에 저장된다.
       // [B] hour가 10보다 크면 hour 실행
       //     즉 hour 값이 result에 저장된다.
       System.out.println(result);
       // [3] test에 저장된 값 출력

       // [3] 삼항 연산자 활용2
       String time = hour < 12 ? "오전": "오후" ;
       System.out.println(time);
       // [주의 사항 복습] 반환값이 문자열이기 int가 아닌 String이어야 한다!
    }
}

 

2. 자바의 반복문 - for문

public class LoopPrac1 {
    public static void main(String[] args) {
       // [1] for (변수 초기식; 조건식; 증감식) { }
       // [2] 조건식이 참인 동안 실행된다.

       for (int i=0; i<20; i++) {
          // [1] 정수형 int 타입 변수 i 선언 및 0으로 초기화
          // [2] i가 20이 되기 전까지 조건식과 증감식 반복
          // [3] i++는 i에 1씩 더하라는 의미이다.
          System.out.print(i+" ");
          // 출력문: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
          // println()을 쓰면 각 숫자가 세로로 나열되어 출력된다.
          // [복습 1] print()에는 줄 바꿈 효과가 없다.
          // [복습 2] +" "을 붙이면 숫자 사이에 띄어쓰기 효과를 낼 수 있다.
       }
       System.out.println();
       // [주의 사항 1] for문 안에 넣으면 줄 바꿈이 반복문 안에서 이루어진다.
       // [주의 사항 2] 한 줄 띄어 쓰려면 for문 바깥에 코드를 작성해야 한다.
    }
}

 

3. 자바의 반복문 - while문

public class LoopPrac2 {
    public static void main(String[] args) {
       // [1] while (조건식) { }
       // [2] for문과 다르게 반복문에서 빠져나올 장치가 필요하다.
       // [3] 변수의 값에 변화를 주어야 무한 반복을 피할 수 있다. 

       // [A] 각각 정수형 int 타입 변수 선언 및 1로 초기화 진행
       int evenNum=1, oddNum=1;

       // [B] 25까지 짝수만 출력되는 반복문
       //     나머지 연산자(%) 활용하기
       //     나머지가 0과 같다면(==) 짝수이니까!
       while (evenNum<=25) {
          if (evenNum%2==0) {
             System.out.print(evenNum+" ");
          }
          evenNum++;
          // [2]의 멈춤 장치로 evenNum에 1씩 더해서 변화를 준다.
          // evenNum++가 있어야 반복문이 무한으로 수행되지 않는다.
          // 출력문: 2 4 6 8 10 12 14 16 18 20 22 24
       }

       System.out.println(); 
       // [주의 사항] for문과 마찬가지로 while문 바깥에 작성한다!

       // [C] 25까지 홀수만 출력되는 반복문
       //     [B]와 동일하게 나머지 연산자(%) 활용하기
       //     나머지가 0과 같지 않다면(!=) 홀수이니까!
       while (oddNum<=25) {
          if (oddNum%2!=0) {
             System.out.print(oddNum+ " ");
          }
          oddNum++;
          // [2]의 멈춤 장치로 oddNum에 1씩 더해서 변화를 준다.
          // 출력문: 1 3 5 7 9 11 13 15 17 19 21 23 25
       }
       
       System.out.println();
       // [주의 사항 복습] while문 바깥에 작성한다!
    }
}

 

4. 실습 결과 

evenNum은 짝수(even number)를, oddNum은 홀수(odd number)를 의미한다. {중괄호}를 블록이라고 하는데, if 블록 안에 코드가 한 줄 뿐일 때는 생략할 수 있다. 단, 두 줄 이상일 때는 반드시 씌워줘야 하므로 중괄호를 되도록 생략하지 않기로 했다. 자바의 반복문은 크게 4가지가 있다는데 그 중 for문과 while문만 학습했다. 나중에 do-while문과 '향상된 for문'을 배울 테니 그전에 배운 반복문 2가지를 똑바로 익혀야겠다.

 

[기타 사항]

이전 조에서 같이 공부한 팀원분이 『개발자로 살아남기』라는 책을 추천해 주셨다. 목표로 세운 오후 6시는 넘었으나 어제보다 훨씬 빨리 공부를 마무리 지은 만큼, 앞으로도 지금처럼 집중력을 발휘해서 책 읽을 시간 또한 안정적으로 확보해야겠다. 좋은 책을 추천해 주셔서 정말 감사했다. 읽을거리가 많아서 행복하다.