ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [live-study] 4주차 :: 제어문
    JAVA/라이브 스터디 | whiteship 2020. 12. 31. 10:47

    https://youtu.be/HLnMuEZpDwU

    참고도서 : Java의 정석, Java in a Nutshell

     

     

     

     

    0. 제어문

    제어문 (Control Statement)
    • 제어문은 프로그램의 흐름을 바꾸는 역할을 하는 문장들을 말한다.
    • 크게 선택문(조건문)과 반복문으로 나눌 수 있다.

    1. 선택문

    선택문
    • 어떠한 조건식과 문장을 포함하는 블럭{ }으로 구성되어 있으며, 조건에 따라 실행할 문자이 달라져 프로그램의 프름을 변경할 수 있다.
    • 조건식이 "참 (true)" 일 때, 조건식의 블럭{ }을 실행하게 되며, "거짓 (false)" 일 때는 실행하지 않는다.
    • if문, if-else문, if-else if문, switch로 나눌 수 있다.
    if문
    • 가장 기본적인 조건문으로, 조건식과 블럭{}으로 이루어져 있다. 만약 조건식이 "참(true)"인 경우 블럭{}안의 문장들을 수행한다.

    • if문을 사용할 때, 블럭 안의 문장이 하나뿐일때 블럭을 생략할 수도 있다.

    • 하지만 블럭을 잘못 생략하면 원하지 않는 로직으로 구현되는 위험이 있을 수 있다.

    if-else문
    • if-else문은 if문에 else문을 추가한 것이다. if문이 조건식이 "참(true)"인 경우에 블럭 내 문장을 실행시켰는데, 만약 그 조건식이 "거짓(false)"일때 실행하고 싶은 문장이 있다면 else 문을 이용하면 된다.

    if-else if문
    • if-else의 경우 하나의 조건식에 대해서만 참인 경우 거짓인 경우로 나눈다.
    • 만약 조건식을 직접 두 개 이상 지정해 주고 싶으면, if-else if문을 사용하면 된다.

     

    중첩 if문
    • if문의 블럭 내에 또 다른 if문을 넣을 수 있다. 

    switch
    • 어떠한 조건식과 문장을 포함하는 블럭{ }으로 구성되어 있으며, 조건에 따라 실행할 문장이 달라져 프로그램의 흐름을 변경할 수 있다.
    • switch문의 조건식은 정수 또는 문자열이어야만 한다.
    • case 값은 정수, 상수, 문자열(JDK 1.7부터 허용) 만 가능하다.

     

    • Java 13에서 업데이트 된 switch연산자는 전 글을 참고하면 된다. [전 글]
    블럭{ }의 표현
    • 블럭은 보통 두 가지 스타일이 있다. 본인 취향에 맞게 사용하면 된다. 

     

    2. 반복문

    반복문
    • 어떤 작업이 반복적으로 수행될 때 사용된다.
    • for문, while문, do-while로 나눌 수 있다.
    for문
    • for문은 반복 횟수를 알고 있을 때 유용하다. 어떠한 조건이 참일 때 반복해서 블록 내 문장을 수행할 수 있다.
    • for문은 아래와 같이 '초기화', '조건식', '증감식', '블록 내 문장' 으로 구성되어 있다. 구분은 ; 로 구분한다.

    • 기본적인 형태는 초기화 1개, 조건식 1개, 증감식 한 개이지만, 초기화와 증감식에서 두 개 이상의 변수를 사용할 수도 있다. 또한, 필요하지 않은 경우 3개의 조건 모두 생략도 가능하다.

    중첩 for문
    • 중첩 if문이 있는 것처럼 for문도 for문 안에 또 다른 for문을 블럭 내에 불러올 수 있다.

    향상된 for문
    • JDK 1.5부터 배열과 컬렉션에 접근할 때 기존보다 편리하게 처리할 수 있도록 새로운 문법이 추가되었다.

     

    while문
    • 조건식이 "참(true)"인 동안만 블럭{ }내의 문장을 반복한다. 조건식이 거짓인 경우 while문을 종료한다.

    • while문은 for문과 다르게 조건식을 생략할 수가 없다. 조건식을 항상 참이 되도록 하려면 true를 넣어야 하고, 무한 반복이 되므로 반드시 벗어날 수 있는 조건을 블록 내에 넣어야한다.

    do-while문
    • do-while문은 while문의 기본적인 구조에서 약간 변형되었다. while문은 조건식을 먼저 체크하고 블럭 { }으로 접근하지만, do-while문은 블럭 { }을 먼저 수행하고 조건식을 평가하게 된다. 따라서 do-while문은 조건식을 체크하기 전에 무조건 한 번은 블럭{ }내 문장을 수행할 수 있다.

    break문
    • break문은 자신과 가까운 반복문을 벗어나게 해준다. 주로 특정 조건을 만족할 때 반복문을 벗어날 수 있게 로직을 구성한다.

    continue문
    • continue문은 반복문 내에서 사용되는데, 반복이 진행되는 도중에 continue문을 만나면 반복문 내의 문장을 다 실행하지 않고 반복문 끝으로 이동한다. for문의 경우 증감식으로 이동하고, while(do-while)문의 경우 조건식으로 이동하게 된다.

     

    이름 붙은 반복문
    • 기본적으로 break문은 자신과 가장 가까운 반복문 단 하나만 벗어날 수 있다. 그래서 중첩 반복문과 같은 경우에서 벗어나려면, 반복문과 break문에 이름을 지정해주고 벗어날 수 있다.


    3. JUnit 5 (추후 추가 예정)

    JUnit 5
    인텔리J, 이클립스, VS Code에서 JUnit 5로 테스트 코드 작성하는 방법



    4. live-study 대시보드 (추후 추가 예정)

    live-study 대시보드



    5. LinkedList 구현 (추후 추가 예정)

    정수를 저장하는 ListNode 클래스를 구현
    ListNode add(ListNode head, ListNode nodeToAdd, int position)를 구현
    ListNode remove(ListNode head, int positionToRemove)를 구현
    boolean contains(ListNode head, ListNode nodeTocheck)를 구현

     

    6. Stack (추후 추가 예정)

    int 배열을 사용해서 정수를 저장하는 Stack을 구현
    void push(int data)를 구현
    int pop()을 구현



    7. ListNode를 사용해서 Stack을 구현 (추후 추가 예정)

    ListNode head를 가지고 있는 ListNodeStack 클래스를 구현
    void push(int data)를 구현
    int pop()을 구현


    8. Queue
     (추후 추가 예정)

    배열로 구현
    ListNode로 구현

     

    댓글

Programming Diary