Week4(제어문)

선택문 : switch

  • 선택문은 조건문의 표현방법중 하나이다.

  • if문은 어떠한 조건을 넣어주고 true/false에 따라서 실행하는 조건문이다. 하지만 switch문은 어떠한 변수에 대해서 그 변수가 어떤 값을 가지는지에 대해서 실행하는 조건문이다.

  • public class Main {
        public static void main(String[] args) {
            String test = "first";
            //test라는 변수에 대해서 switch
            switch(test){
                //test의 문자열이 fist일경
                case "first":
                    System.out.println("first!!");
                    //break라는 키워드를 사용해서 조건문에 대한 실행을 빠져나올 수 있다.
                    //만약 break문을 사용하지 않는다면 바로 그 다음 case문을 사용하게 된다.
                    break;
                case "end":
                    System.out.println("out");
                    //return을 사용하게 되면 메소드를 바로 return할 수 있다.
                    return;
                default:
                    //만약 test변수에 대해서 case문에 조건이 안적혀있을때는 default부분을 실행한다.
                    System.out.println("this is default");
    
            }
        }
    }

반복문 : for, while

반복문은 반복되는 코드를 조건을 설정해서 조건만큼 원하는 코드를 반복시키는 명령문이다.

  • for문 : 조건을 주고 조건을 검사 후, 조건이 참일경우 for문 안의 코드를 실행하고 다시 돌아가서 조건을 확인한다.

    • for문 안에서의 정의된 변수는 for문이 끝나게되면 메모리에서 소멸

    • 조건의 형태 : (int i=0; i<5; i++)

      • 초기식 : i는 0으로부터 시작해서

      • 조건식 : i가 5보다 낮다면 for문 안의 코드를 실행하라(기준은 변수로 사용가능)

        • 만약 조건에 true값을 주게 되면 무한루프로 실행 가능

      • 증감식 : i를 ++ 증가시킨다.

    • public class Main {
          public static void main(String[] args) {
              for (int i = 0; i < 10; i++) {
                //i가 10미만일때 for문 안의 코드 사용
                //i를 하나씩 증가
                  System.out.println(i);
              }
          }
      }
  • while문 : 조건을 넣어주고 그 조건의 결과가 true일때 동안 계속 while문 안의 코드를 실행한다.

    • 내부의 코드를 전부 실행하고나서 조건을 다시 확인해서 조건문이 true인지 확인한다.

      • public class Main {
            public static void main(String[] args) {
                int i=0;
                while(i<10){
                    //1. i이 10보다 낮을경우에는 안의 코드를 실행한다.
                    //4. i는 1이니까 10보다 낮고 다시 코드를 실행.....
                    System.out.println(i+"번째 코드실행");
                    i++;
                    //2. i의 값을 1로 변경
                    //3. 다시 while문으로 돌아가서 i값이 10보다 작은지 확인한다.
                }
            }
        }
    • 만약 true이게되면 계속해서 내부 코드를 실행한다. => 무한루프를 생성하기 좋은 반복문

    • public class Main {
          public static void main(String[] args) {
              int i=0;
              //무한 루프이다. => 조건이 참일때이기 때문에 while문 안의 코드를 항상 실행
              while(true){
                  System.out.println(i+"번째 실행");
                  i++;
                  if(i==3){
                      //루프를 돌고 있다면 해당 루프의 끝으로 진행하고 다음 루프로 넘어감 / continue이후의 문장은 실행되지 않는다.
                      continue;
                  }
                  if(i==5){
                      //루프를 돌고 있다면 해당 루프를 종료시키는 break
                      break;
                  }
              }
          }
      }
    • 무한루프를 사용하게되면 꼭 무한루프에서 벗어나는 코드를 포함시켜줘야한다.

  • do while문

    • 기본적인 사용은 while문과 비슷하지만 조건에 상관하지 않고 한 번은 꼭 실행을 해준다.

    • do에는 조건식의 결과가 참일 동안 반복할 코드

    • while에는 조건식을 넣어준다.

    • public class Main {
          public static void main(String[] args) {
              int i=0;
              //while과 같은 식이지만 do/while방식으로 변경해서 사용가능
              do{
                  System.out.println(i+"번째 실행");
                  i++;
                  if(i==3){
                      continue;
                  }
                  if(i==5){
                      break;
                  }
              }while(false);
            //이렇게 조건식이 false여도 i가 0이라는 것을 print해주고 종료한다.
          }
      }

JUnit 5 : 자바 언어용 유닛 테스트 프레임워크

  • Java를 위한 단위테스트(Unit Test) 프레임워크로 개발하는 프로그램에 대한 테스트 케이스를 쉽게 작성을 도와준다.

  • JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

    • JUnit Platform : JavaVirtualMachine에서 테스트 프레임워크를 시작하기 위한 기초이며 플랫폼에서 실행되는 테스트 프레임워크를 개발하기 위한 TestEngine API를 정의한다.

    • JUnit Jupiter : JUnit 5에서 테스트 및 확장을 작성하기 위한 새로운 프로그래밍 모델과 확장 모델의 조합이다. Jupiter기반 테스트를 실행하기 위한 TestEngine을 제공해줌

    • JUnit Vintage : 플랫폼에서 JUnit3와 JUnit4를 실행하기 위한 TestEngine을 제공한다.

live-study 대시 보드를 만드는 코드를 작성하시오

LinkedList를 구현하세요

  • 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조

  • 각 노드에는 데이터가 들어가며 포인터는 이전노드의 포인터가 다음 노드의 포인터를 가리키는 방식이다

  • LinkedList에 Node를 추가하거나 삭제하면 앞 뒤 링크만 변경되고 나머지 링크는 변경되지 않음

  • 중간에 데이터를 추가/삭제 하게되면 전체의 인덱스가 한 칸씩 뒤로 밀리거나 당겨지는 일이 없기 때문에 데이터의 추가 / 삭제에 용이

  • 인덱스가 없기 때문에 특정 요소를 찾기 위해서는 순차적으로 탐색해야 하기 때문에 탐색 속도가 떨어지는 단점이 있다.

구현

Last updated

Was this helpful?