본문 바로가기
JAVA

백기선 자바 스터디 4주차

by 소고기 굽는 개발자 2023. 7. 18.

선택문

선택문은 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문을 말합니다.
가장 기본이 되는 형태는 다음과 같습니다.

if문
if문은 조건식의 결과가 참이면 주어진 명령문을 실행하고 거짓이면 아무것도 실행하지 않습니다.

출처: tcp/ip school if문
예제 코드: if문 메서드

if/else문

if문과 함께 사용되는 else문은 if문과 반대로 주어진 조건식의 결과가 거짓이면 주어진 명령문을 실행합니다.

출처: tcp/ip school if/else문
예제 코드: if else문 메서드

if/ else if/ else문

두개의 if / else문을 연달아 사용해 간결히 표현할 수도 있습니다.
여기서 else if문은 여러번 나올 수 있지만 if else는 한번만 나올 수 있습니다.

출처: tcp/ip school if/ else if/ else문
예제 코드: if else if else문 메서드

반복문

반복문이란 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복해 수행하도록 제어하는 명력문입니다.

while문

while문은 특정 조건을 만족할 때까지 계속해서 주어진 명령문을 반복 실행합니다.

출처: tcp/ip school while문

  1. 초기식을 선언 및 초기화시킵니다.
  2. 초기식의 조건이 참(true)일 경우 3번의 내용을 진행합니다.
  3. 조건식의 결과가 참인 결과가 참인 경우 진행합니다.
  4. 조건식의 결과를 변경하는 명령문을 작성합니다.
    예제 코드: while문 메서드

do / while문

while문에 진입하기 전에 먼저 조건식부터 검사합니다.
하지만 do/while문은 먼저 루프를 한번 실행한 후에 조건식을 검사합니다.

출처: tcp/ip school do while문

  1. 초기식을 선언 및 초기화시킵니다.
  2. 처음엔 조건식이 참인 것과 상관없이 내용을 진행합니다.
  3. 조건식의 결과를 변경합니다.
  4. 현재의 조건식에서 반복을 할 수 있는지 여부를 확인합니다.
    예제 코드: do while문 메서드

for문

for문은 초기식, 조건식, 증감식을 모두 포함하고 있는 반복문입니다.

출처: tcp/ip school do for문

  1. 초기식을 선언합니다.
  2. 조건식 만족한다면
  3. 내용을 실행합니다.
  4. 초기식에서 선언한 변수를 증가시키고 다시 2번을 진행합니다.
    예제코드: for문 메서드

Enhanced for문

JDK1.5부터 배열과 컬렉션의 모든 요소를 참조하기 위한 Enhanced for문이 새롭게 추가됩니다.
Enhanced for문은 참조할 때만 사용하는 것이 좋으며, 요소의 값을 변경할 때는 적합하지 않습니다.
예제 코드: Enhanced for문 메서드

LinkedList
LinkedList는 java.util패키지의 Collection중 하나입니다.

이미지 출처: LinkedList 관련 글

이 클래스는 데이터가 연속된 위치에 저장되지 않고 모든 데이터가 데이터 부분과 주소 부분을 별도로 가지고 있습니다.
데이터는 포인터와 주소를 사용하여 연결합니다.
각 데이터는 노드라 불리며 배열에서 자주 삽입, 삭제가 이루어 지는 경우 array, ArrayList보다 선호되는 자료 구조 입니다.
하지만 ArrayList보다는 검색에 있어 느리다는 단점이 있습니다.

출처: https://crazykim2.tistory.com/566

과제

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

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

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

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

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

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

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

  • ListNode head를 가지고 있는 ListNodeStack 클래스를 구현하세요.
  • void push(int data)를 구현하세요.
  • int pop()을 구현하세요.
    예제 코드: LinkedList Stack 구현하기

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

'JAVA' 카테고리의 다른 글

백기선 자바 스터디 8주차  (0) 2023.08.31
백기선 자바 스터디 6주차  (0) 2023.08.15
백기선 자바 스터디 3주차  (0) 2023.07.12
백기선 자바 스터디 2주차  (0) 2023.06.26
백기선 자바 스터디 1주차  (0) 2023.06.22