본문 바로가기
Programming/Java

[whiteship 온라인 스터디] 4주차 과제: 제어문

by 읽고 쓰는 개발자 2020. 12. 26.

github.com/whiteship/live-study/issues/4

 

4주차 과제: 제어문 · Issue #4 · whiteship/live-study

목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 (필수) 선택문 반복문 과제 (옵션) 과제 0. JUnit 5 학습하세요. 인텔리J, 이클립스, VS Code에서 JUnit 5로 테스트 코드 작성하는 방법에 익숙해

github.com

목표

자바가 제공하는 제어문을 학습하세요.

학습할 것 (필수)

선택문
반복문

과제 (옵션)

과제 0. JUnit 5 학습하세요.

  • 인텔리J, 이클립스, VS Code에서 JUnit 5로 테스트 코드 작성하는 방법에 익숙해 질 것.
  • 이미 JUnit 알고 계신분들은 다른 것 아무거나!
  • 더 자바, 테스트 강의도 있으니 참고하세요~

과제 1. live-study 대시 보드를 만드는 코드를 작성하세요.

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

과제 2. LinkedList를 구현하세요.

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

과제 3. Stack을 구현하세요.

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

과제 4. 앞서 만든 ListNode를 사용해서 Stack을 구현하세요.

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

과제 5. Queue를 구현하세요.

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

1. 선택문 (조건문) : 조건에 따라 코드 블록의 실행 여부가 결정되는 제어문

  • if문 : 조건식의 결과에 따라 블록 실행 여부가 결정된다.
    • if, if-else, if-else if - else, 중첩if문 등 다양한 구조 
    • 조건문이 false이면 if문을 빠져나가고, true일 때만 중괄호{} 안의 실행문을 동작시킨다.
if(조건문) {

	실행문;
    실행문;

}
if(조건문1) {
	// 조건문1을 만족시키면 실행시키는 코드블록.
    // 이 블록 실행 후 if문 빠져나간다.
} else if(조건문2) {
	//조건문1을 만족시키지 않지만 조건문2를 만족시킬 때 실행되는 코드블록.
    //이 블록 실행 후 if문 빠져나간다.
} else {
	// 조건문1, 조건문2 모두 만족시키지않을 때 실행되는 코드블록.
}
if(조건식) {
	실행문;	//조건식이 true일 때 실행
} else {
	실행문; 	//조건식이 false일 때 실행
}
  • switch문 :변수가 어떤 값을 갖느냐에 따라 실행문이 선택된다.
switch(변수) {
	case 값:		//주어진 변수와 값이 일치할 때 해당 case문을 실행한다.
    	실행문;
        break; 		// break문이 없으면 아래 case실행문을 실행하니 주의
   
	case 값2:		//주어진 변수와 값이 일치할 때 해당 case문을 실행한다.
    	실행문;
        break; 		// break문이 없으면 아래 case실행문을 실행하니 주의
    	
	default:		// 변수와 값이 불일치하면 default 실행문 실행한다.
    	실행문;
        break; 	
}

이미지 출처 : https://www.javatpoint.com/java-switch

2. 반복문 

  • for문
  • while문( do-while)

 

 

과제 2. LinkedList를 구현하세요.

github.com/sophysophysophysophy/algorithm/blob/master/com/exam/DoublyLinkedListNode.java

 

sophysophysophysophy/algorithm

Contribute to sophysophysophysophy/algorithm development by creating an account on GitHub.

github.com

github.com/sophysophysophysophy/algorithm/blob/master/com/exam/SinglyLinkedListNode.java

 

sophysophysophysophy/algorithm

Contribute to sophysophysophysophy/algorithm development by creating an account on GitHub.

github.com

과제 3. Stack을 구현하세요.

github.com/sophysophysophysophy/algorithm/blob/master/com/exam/Stack.java

 

sophysophysophysophy/algorithm

Contribute to sophysophysophysophy/algorithm development by creating an account on GitHub.

github.com