교육 (Today I Learned)/SeSAC

SeSAC 23일차 / 조건문, 반복문, toString(), equals()

Bay Im 2023. 8. 25. 00:25
SeSAC 23일차(2023-08-17)
조건문, 반복문, toString(), equals()


조건문

  • if 문
    • 값이 범위가 있는 수치일 때 적합
  • switch 문
    • 값이 명확한 수치일 때 적합
    • 일반적으로 if 문보다 성능이 더 좋음
    • 조건 3개 이상이면 switch 문 쓰는게 좋다. (속도)
  • 삼항연산자
    • ( 조건 ) ? A(참일 때 반환할 값) : B(거짓일 때 반환할 값); 의 형태
  • 논리합, 논리곱
    • (조건) || (조건); 의 형태
      • 앞 조건에서 true가 나올 경우 뒤 조건의 내용은 실행하지 않음
    • (조건) && (조건); 의 형태
      • 앞 조건에서 false가 나올 경우 뒤 조건의 내용은 실행하지 않음

 

 

반복문

  • for
    • for (int i = 0; i < b; i++) { } 의 형태
    • for 문에서 a.length 쓸 때 그대로 for 문안에 넣지 말고 b = a.length 같이 변수 안에 값 넣어서 그 변수를 for 문 안에 넣기
  • for-each
    • for (Object bElement : b) { sout(bElement) } 의 형태
  • while
    • while(조건문) { } 의 형태
    • 조건문은 외부 요인으로 정의

 

 

실습

  • Project: DateProject
  • package: test.date
  • Main_class: TestDate
  • 내용: 일정관리 프로그램을 위한 날짜를 표현하기 위한 클래스 만들기, 날짜는 연월일(y, m, d)의 값으로 표현
  1. int y, m, d;
  2. date 의미
  3. data type 생성: class Date (1번 데이터 포함)
  4. 사용
  5. today
  6. today.m = 1;
  7. 디버깅

 

toString(), equals() 오버라이드

  • toString()
    • toString() 오버라이드를 해야 print 했을 때 주소값이 나오지 않고 문자열이 출력된다.
@Override
public String toString() {
    return year + "-" + month + "-" + day;
}

public void print(){
        System.out.println(this);
    }

today.print();
=> 2023-8-17 형태로 출력
  • equals()
    • equals() 오버라이드를 해야 값끼리 비교가 된다.

 

 

오늘의 실습 코드

https://github.com/yubin-im/SeSAC/tree/fea8279f21b75a33d808c358eb36412fd74e945c/20230817/test/date