슬기로운 개발생활

온라인 자바 스터디 #4 - 제어문

by coco3o
반응형

목표

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

학습할 것 (필수)

선택문
반복문

과제 (옵션)

과제 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를 사용해서 한번.

선택문

의사 결정시 코드블럭을 선택적으로 실행함

  • if 문
  • if - else , else if 문
  • switch 문

 

  • if문
if(조건식) {
	//조건식이 true일 때 수행될 문장들을 적는다.
}
  • if-else문
if(조건식) {
	//조건식이 true일 때 수행될 문장들을 적는다.
} else {
	//조건식이 false일 때 수행될 문장들을 적는다.
}
if(조건식1) {
	//조건식1이 true일 때 수행될 문장들을 적는다.
} else if(조건식2){
	//조건식2이 true일 때 수행될 문장들을 적는다.
} else if(조건식3) {
	//조건식3이 true일 때 수행될 문장들을 적는다.
} else {
	//마지막은 보통 else로 끝나며 else블럭은 생략가능
    //위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적는다.
}

간단한 if문 예제

if의 조건식과 else if의 조건식이 둘 다 만족한다.

여기서 실행결과는 어떻게 될까?

결과

결과는 if문 한 개만 실행이 된다.

이유는 처음 if문의 조건식에서 true가 나왔기 때문에, 뒤의 조건식은 보지않는다.

여기서 알고 넘어갈 것은 자바의 if문의 조건에는 비교 혹은 논리 연산의 결과가 들어가야한다.

조건절에서 boolean 자료형을 반환하여 동작하기 때문이다.


조건의 경우의 수가 많을 때는 if문보다 switch문을 사용하는 것이 더 간결하고 알아보기 쉽다.

if문은 조건식의 결과가 true, false 두 가지밖에 없지만,

switch문의 조건식은 결과값으로 int형 범위의 정수값을 허용한다.

 

- switch문은 if문보다 제약조건이 많기 때문에 switch문에서 if문으로 변환이 가능하지만,

if문은 switch문으로 작성할 수 없는 경우가 많다.

  • switch문
switch(조건식) {
	case 값 1 :
    	//조건식의 결과가 값1과 같을경우 수행될 문장들
        //break;
	case 값 2 :
    	//조건식의 결과가 값2과 같을경우 수행될 문장들
        //break;
	case 값 3 :
    	//조건식의 결과가 값3과 같을경우 수행될 문장들
        //break;
    default :
    	//조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들

간단한 switch문 예제
실행 결과

각 case마다 break;라는 문장이 있는데 이는 해당 case문을 실행 한 뒤 switch문을 빠져나가기 위한 것이다.

만약 break 문이 빠져 있다면 그 다음 case문이 실행될 것이다. 


반복문

반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용된다.

  • for 문
  • while 문
  • do - while 문

for문이나 while문에 속한 문장은 조건에 따라 한 번도 수행되지 않을 수 있지만,

do-while문에 속한 문장은 최소 한 번은 실행될 것을 보장한다.

 

-switch문을 제외한 if, for, while문에 사용되는 조건식은 연산결과가 반드시 boolean형 ( true, false )이어야 한다.

 

 

  • for 문

for문은 주로 반복횟수를 알고 있을때, 그리고 카운터가 반복문 내에 필요한 경우에 사용된다.

for(초기화 ; 조건식 ; 증감식) {
	//조건식이 true일 때 수행될 문장들
}

간단한 for문 예제
결과

 

  • while 문

while문은 단순히 조건에 따른 반복만이 필요한 경우 사용된다.

while(조건식) {
	//조건식의 연산결과가 true일 때 수행될 문장들
    
}

간단한 while문 예제
결과

  • do - while 문

while문의 변형으로 기본적인 구조는 같으니 블럭 { }이 먼저 수행된 후에 조건식을 판단하는 것이 while과의 유일한 차이점이다.

do {
	//조건식의 연산결과가 true일 때 수행될 문장들
} while(조건식);

 

간단한 do - while문 예제
결과

위의 예제를 보면 알다시피 do - while 문은 조건이 false여도 한 번은 실행 된다.


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

dev-coco.tistory.com/7

 

 

반응형

블로그의 정보

슬기로운 개발생활

coco3o

활동하기