Java week4


4주차

선택문
반복문
JUnit5
live-study 대시 보드
LinkedList
Stack
ListNode를 사용해서 Stack을 구현
Queue

선택문(조건문), 반복문

  • 실행의 흐름을 원하는 방향으로 바꿀 수 있도록 해주는 것이 제어문
  • 제어문에는 조건문과 반복문이 있다

조건문(if, switch)

if

  • if 문
    • 조건식이 참이면 중괄호{ } 안의 실행문을 실행한다.
if (조건식) {

	실행문;
}
  • if - else문
    • 조건식에따라서 실행될 블록이 선택된다.
    • if 문의 조건식이 참이면 실행문1 이 실행. 거짓이면 실행문2가 실행
if (조건식) {
	실행문1;
} else {
	실행문2;
}
  • if - else if - else 문
    • 조건식을 위헤서 차례로 검증하며, 참인 경우 해당 실행문을 실행하며 조건문을 빠져나온다
    • 모든 조건이 거짓인 경우 마지막 else 에 해당하는 실행문3가 실행된다
if (조건식) {
	
	실행문1;
	
} else if (조건식) {
	
	실행문2;
	
} else {

	실행문3;

}

switch

  • 변수가 어떤 값을 가지느냐에 따라서 정의된 실행문을 실행한다.
    • 변수에 해당하는 값의 실행문을 실행한다.
    • break가 없으면 무조건 전부 체크한다.
    • 변수에 해당하는 값이 없을 때, 실행하고 싶다면 case 변수: -> default를 사용한다.
  • Java 6버전 까지는 정수 타입(byte, char, short, int, long)만 변수나 정수로 값이 산출되는 연산식만 가능했다
  • Java 7부터는 String 타입의 변수도 가능하다
    int num = 5;

    switch (num) {
        case 1:
            System.out.println("1인가");
        case 2:
            System.out.println("2인가");
            break;
        case 3:
            System.out.println("3인가");
        default:
            System.out.println("무조건 찍힌다");
    }

반복문(for, for-each, Iterator 활용, while, do-while)

  • 같은 실행문을 특정 수만큼 반복적으로 실행할 때 사용한다.

  • for

    • 초기화식이 실행되고, 조건이 참인 경우에 실행문시 증감조건만큼 실행된다.
    • 조건식이 false가 되면 해당 for문은 종료된다.
    • **초기화 식에서 부동소수점을 사용하지 말자
for (초기화식; 조건식; 증감조건) {
	실행문;
}

for (int i=0, j=100; i<=50 && j>=50; i++, j--) {
	실행문;
}
  • 향상된 for 문 (for-each)
    • Collection 이나 Iterable 인터페이스를 구현한 경우에 사용할 수 있음
    • array의 IndexOutOfBoundsException 을 피할 수 있음
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5);
for(Integer i : nums){
    실행문;
}
  • Iterator를 사용해서 반복문 가능
Iterator<String> iter = list.iterator();
while(iter.hasNext()){
    실행문;
}

Set<String> keys = map.keySet();
Iterator<String> iter = keys.iterator();
while(iter.hasNext()) {
    실행문;
}

Collection<String> value = map.values();
iter = value.iterator();
while(iter.hasNext()) {
    실행문;
}
  • while
    • 조건식이 true이면 계속 반복한다.
    • 아래의 조건식에는 주로, 비교 또는 논리 연산이 주로 온다
while (조건식) {
	실행문;
}
  • do-while
    • 최초 1회는 조건식과 관계없이 무조건 실행문을 실행한다.
    • 이후부터는 조건식을 검증하며 true인 경우에만 실행문을 실행한다.
do {
	실행문;
} while (조건식)

break

  • 반복문을 종료시킨다.
    • 반복문, switch에 사용한다.
    • break 기준으로 감싸있는 반복문의 중괄호 { } 를 벗어난다.
for(Integer i : nums){
    실행문;
    break;
}
  • 중첩문에서 특정 중첩까지 종료시키고 싶을 때는 아래와 같이 한다 - 아래에서 2중 반복문에서 Break 이름;까지 벗어날 수 있다.
Start: for ( ..... ) {
	for (.....) {
		break: Start;
	}
}

Continue

  • 반복문+조건문에서 사용한다
    • 반복문 속 조건문 Continue를 만나게 되면 Continue 기준 아래 로직은 수행하지 않고, 반복문을 계속 수행한다.
for (int i=0; i<=1; i++) {
    if (i==0) {
        System.out.println("한 찍힐까?");
        continue;
    }
    System.out.println("i가 0에서 안찍힘. i == " + i);
}

JUnit5

  • 강의시작!

  • 아래는 12월 16일까지 하기

live-study 대시 보드

깃헙 이슈 1번부터 18번까지 댓글을 순회하며 댓글을 남긴 사용자를 체크 할 것.
참여율을 계산하세요. 총 18회에 중에 몇 %를 참여했는지 소숫점 두자리가지 보여줄 것.
Github 자바 라이브러리를 사용하면 편리합니다.
깃헙 API를 익명으로 호출하는데 제한이 있기 때문에 본인의 깃헙 프로젝트에 이슈를 만들고 테스트를 하시면 더 자주 테스트할 수 있습니다.

LinkedList

LinkedList에 대해 공부하세요.
정수를 저장하는 ListNode 클래스를 구현하세요.
ListNode add(ListNode head, ListNode nodeToAdd, int position)를 구현하세요.
ListNode remove(ListNode head, int positionToRemove)를 구현하세요.
boolean contains(ListNode head, ListNode nodeTocheck)를 구현하세요.

Stack

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

앞서 만든 ListNode를 사용해서 Stack을 구현

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

Queue

배열을 사용해서 한번
ListNode를 사용해서 한번