오봉이와 함께하는 개발 블로그

DAY_3 본문

자바/교육과정

DAY_3

오봉봉이 2021. 11. 3. 23:45
728x90

day_3 정리 (2021.11.03 수요일)

연산자

산술 연산자

변수에 값을 변경 시킬 때는 실제 변수를 변경해야 한다.(System.out.println(a+1)은 출력할 때 출력 값만 변화를 시킨다.)

사칙연산(+, -, *, /, %)

  • a = a + 1과 a += 1은 같은 동작(+, -, *, /, % 모두 동일)

부호연산(+(Positive),-(Negative))

  public class OperatorEx1 {
    public static void main(String[] args) {
        // 양/음수의 부호를 바꿀 때 사용한다.
        int num1 = -10;
        int num2 = 20;

        System.out.println(+num1); //-10
        System.out.println(+num2); // 20

        System.out.println(-num1); // 10
        System.out.println(-num2); //-20

        System.out.println(num1); // -10
        System.out.println(num2); //  20

        num1 = -num1;

        System.out.println(num1); //10  - 대입연산자를써야부호가바뀐다
    }
}

증감연산

  • 전위 연산
    • 변수에 연산을 먼저 하고 값을 쓴다.
    • ++변수명, --변수명
  • 후위 연산
    • 변수를 먼저 사용하고 연산을 한다.
    • 변수명++, 변수명--

연산자들의 우선순위

  • 존재 하지만 우선순위를 다 외워서 사용하지 않는다.
  • ()를 이용해서 정확하게 우선순위를 표현하는 것이 제일 좋다.
  • 우선순위가 같은 경우 왼쪽에서 오른쪽으로 연산한다.
  • () > 증감, 부정 > 곱셈, 나눗셈, 나머지 > 덧셈, 뺄셈 > 할당(=) ...
  • 결과
    • 정수(4) + 정수(4) = 정수(4byte)
    • 정수(4) * 정수(4) = 정수(8byte)
    • 정수(4) / 정수(4) = 실수(8byte)

문자열 연산

  • 덧셈 연산자를 사용할 수 있다
    • 문자열과 문자열의 연결
  • length() : 문자열의 길이
  • isEmpty() : 문자열이 공백인지 아닌지 참, 거짓으로 결과를 출력
  • equals("비교하고 싶은 문자열") : 문자열이 "비교하고 싶은 문자열"과 같은지 참, 거짓으로 결과 출력
  • subString(n, m) : n번째부터 m번째까지 문자를 잘라줌.
  • split("원하는 값")[n] : "원하는 값"을 기준으로 배열에 잘라서 넣어주고 n번째 배열을 출력한다.
  • trim() : 문자열의 앞, 뒤 공백을 제거

관계 연산자

  • 비교 연산자, 참/거짓(Boolean)
  • 같다(==), 같지 않다(!=), 크다(>), 크거나 같다(>=), 작다(<), 작거나 같다(<=)
  • 결과는 항상 true(1), false(0)
    • 결과는 문자열이 아니다.

논리 연산자

  • 명제 : 참, 거짓으로 구분될 수 있는 문장
    • 연산의 결과가 true or false로 나오는 명령어
  • 여러 개의 명제를 결합.
  • AND(&&)
    • 두 연산의 결과가 모두 참이여야 참이다.
  • OR(||)
    • 두 연산 중 하나의 결과만 참이여도 참이다.
  • NOT(!)
    • 값을 반대로
  • 우선순위
    • ! > && > ||

배열(Array)

  • 배열의 선언

    int[] array = {1,2,3,4,5,6,7}; //4*7 = 28바이트
    char[] str = {'h', 'e', 'l', 'l', 'o'}; // 2*5 = 10 바이트
    
    String[] strr = {"Hello", "Java", "World"};
    // 선언과 할당을 동시에 하는 경우 정해주지 않아도 됨.
    
    int[] arr = new int[n]; // n은 정수
    // 선언만 하는 경우 배열의 크기를 정해줘야 한다.
  • 가장 기본적인 자료구조

    • 여러 자료가 직선상에 구성되어 있기 때문에 선형자료구조라고도 한다.
    • 배열의 크기는 고정되어 있다.
  • 다차원 배열

  • 배열도 자료형 갖는다

    • 배열의 크기는 자료형에 따라 다르다.
  • String도 Char형으로 이루어진 문자 배열이다

  • 배열의 인덱싱은 0부터 순차적으로 부여된다.

  • 배열의 마지막 인덱스 값은 배열의 크기가 n일 때 n-1이다.

String과 StringBuffer의 차이

  • String변수에 +연산이나 concat연산을 사용해서 문자열 연산을 하면 또 하나의 변수가 생겨 자원이 낭비
    • 문자열은 변경이 불가능하기 때문
  • StringBuffer에 메소드를 통해 추가, 삭제를 하게 된다면 하나의 변수에 지속적으로 연산을 하게 되기 때문에 자원을 효율적 사용함
    • 인덱싱은 지원하기 때문

제어문

  • 조건문과 반복문의 두 가지만 가지고 모든 명령어의 실행을 제어

    조건문

    if

    if(명제) {
      // 명제가 참일 경우 실행될 명령어
    }
    else if(명제) {
      // 상위 명제가 거짓일 경우 순차적으로 내려가면서 명제가 참일 때 수행할 명령어
    }
    else {
      // 모든 명제가 거짓일 때 수행 할 명령어
    }

    switch-case

  • switch-case로 작성 가능한 명령어들은 if로도 표현이 가능하다. (반대는 불가능)
    switch(입력변수) {
      case 입력값1: ...
           break; // 조건이 맞으면 종료시키기 위함.
      case 입력값2: ...
           break;
      ...
      default: ... // 모든 조건이 맞지 않을 때 동작(else와 비슷)
           break;
    }
728x90

'자바 > 교육과정' 카테고리의 다른 글

DAY_6  (2) 2021.11.08
DAY_5  (0) 2021.11.08
DAY_4  (0) 2021.11.04
DAY_2  (0) 2021.11.02
DAY_1  (0) 2021.11.01
Comments