TIL 2023/10/24 Java

YEONGDO·2023년 10월 24일

[학습 목표]

  1. 다양한 연산자에 대해서 학습하고 사용방법을 익힙니다.
  2. 조건문과 반복문을 통해 프로그램의 문맥을 구성하는 방법을 배웁니다.
  3. 배열로 연속된 데이터들을 효율적으로 저장하고 관리하는 방법을 배웁니다.
  4. 다차원 배열로 좀더 복잡한 데이터를 저장하고 관리하는 방법을 배웁니다.
  5. 컬렉션으로 연속된 데이터들을 더욱 효율적으로 저장하고 관리하는 방법을 배웁니다.
  6. 여러 컬렉션들의 기능을 익히고 적절하게 사용하는 방법을 배웁니다.

1. 연산자

Java 프로그래밍은 변수, 상수들을 계산하기 위해서 연산자를 사용한다.

1) 연산자와 피연산자에 대한 이해
계산할 때 계산의 대상이 되는 것이 피연산자, 계산의 목적이 되는 것이 연산자

  • 연산자: 덧셈 뺄셈과 같은 계산할 기호
  • 피연산자: 연산자로 인해 계산되는 숫자
  • 2) 연산자 종류

    • 연산자는 사칙연산 외에도 여러가지 연산자가 존재

      산술 연산자+ - * / % << >>사칙 연산과 비트연산
      비교 연산자> < >= <= == !=크고 작음과 같고 다름을 비교
      논리 연산자&&
      대입 연산자= ++ —-우변의 값을 좌변에 저장, 연산 복합 대입
      기타 연산자(type) ? :  instance of형변환 연산자, 삼항 연산자, instance of 연산자
    1. 산술연산자: 사칙연산 및 비트연산 포함, 결과값 응답, (덧셈,뺄셈,곱셈,나눗셈/몫,나눗셈/나머지)
    2. 비교연산자: 값의 크고/작음을 비교하거나 같고/다름을 비교하여 참(true)/거짓(false)의 boolean 값 출력, (>,<,>=,<=,==,!=)
    3. 논리연산자: 비교 연산의 결과값으로 받을 수 있는 boolean값을 연결하는 연산자, 조건을 연결하였을 때 boolean 값들을 조회하여 true/false 값을 출력, (&&,||,!)
    4. 대입연산자: 변수를 바로 연산해서 그 자리에서 저장하는 연산자, 복합 대인 연산자(+=,-=,*=,...), += 1과 ++는 동일, -= 과 --는 동일 (피연산자에 1 더해주거나 뺴기)
    5. 기타연산자: 형변환 연산자, 삼항 연산자, instance of 연산자

    3) 연산자 우선순위

    연산자 우선순위 : 산술 > 비교 > 논리 > 대입

    4) 산술 변환

    • 피연산자의 타입이 int 보다 작은 short 타입이면 int 로 변환
    • 피연산자의 타입이 long 보다 작은 int, short 타입이면 Long 으로 변환
    • 피연산자의 타입이 float보다 작은 long, int, short 타입이면 float 으로 변환
    • 피연산자의 타입이 double 보다 작은 float, long, int, short 타입이면 double 으로 변환

    5) 비트연산

    • Bit 는 0,1 둘중의 하나의 값만을 저장하는 컴퓨터가 저장(표현)가능한 가장 작은 단위
    • 컴퓨터의 가장작은 단위인 Bit이기 때문에 연산중에서 Bit 연산이 제일 빠르다.
    • 물론 이전에 배운대로 0,1 값으로 산술연산을 하거나, 비교연산을 할 수 있지만 비트 연산을 통해 자리수를 옮길수도 있음.
    • 이처럼 Bit의 자리수를 옮기는 것을 비트 연산

    2. 조건문과 반복문

    Java 프로그래밍에서 특정 조건에 따라 다른 연산을 수행하고 싶을 때 조건문을 사용
    또는, 특정 조건에 따라 반복해서 동일한 연산을 수행하고 싶을 때 반복문을 사용

    1) 조건문

    조건을 만족할때만 {}을 수행(0-1번)


    1. if문

    if (조건식) {
    	실행문;
        실행문;
    }

    if 문의 중괄호 블록은 여러개의 실행문을 하나로 묶기 위해 작성된다. if 뒤에 나오는 조건식이 참(true)면 중괄호 블록 안의 실행문을 실행한다.

    int score = 95;
    if (score > 90) { // 조건식 (score > 90)이 참이면 중괄호 블록 실행
    	System.out.println("점수가 90보다 크다");
        System.out.println("good");
    }

    2. if-else문

    if문의 조건식이 true면 if문의 블록이 실행되고, 조건식이 false면 else 블록이 실행된다. 조건식의 결과에 따라 이 두개의 블록 중 어느 한 블록의 내용만 실행하고 전체 if문을 벗어나게 된다.

    if (조건식1) {
        // 조건식1이 참일 때 수행될 문장들을 적는다.
    } else if (조건식2) {
        // 조건식2가 거짓일 떄 수행될 문장들을 적는다.
    } else if (조건식3) {
        // 조건식3가 거짓일 떄 수행될 문장들을 적는다.
    } else {
    
    }

    3. switch문

  • switch문은 하나의 변수나 수식에 대한 조건을 검사하여 실행할 문장을 선택하는 조건문. switch문은 case와 함께 사용하며, 각각의 case 마다 break;을 작성하여 해당 case가 끝남을 알려야 한다. if문에서 조건에 만족하는 경우가 아예 없을 때 실행할 내용을 else에 작성했다면, switch문에서는 default로 나머지 조건을 받아온다.
  • switch (조건식) {
        case 값1 :
            // 조건식의 결과가 값1과 같을 경우 수행될 문장들
            // ...
            break;
        case 값2 : 
            // 조건식의 결과가 값2와 같을 경우 수행될 문장들
            // ...
            break;      // switch문을 벗어난다. 
        // ...
        default :
            // 조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들
            // ...
    }
    

    2) 반복문

    조건을 만족하는 동안 {}를 수행(0-n번)



    1. for문

  • 조건을 만족하는 동안 블럭을 반복 반복횟수를 알 때 적합
  • for (초기화; 조건식; 증감식) {
        // 수행될 문장
    }

    증감식은 블럭 안의 문장이 수행된 이후 실행된다.
    초기화 하는 변수는 두 개 사용할 수도 있는데 타입이 같아야만 가능하다.

    2. while문

  • 반복횟수를 모를 때 적합
  • while (조건식) {
        // 조건식의 결과가 참인 동안 반복될 문장
    }

    3. do-while문

  • while문은 한 번도 실행되지 않는 경우가 있을 수 있는 반면, do-while문은 적어도 한번은 반드시 실행된다.
  • do {
        // 조건식의 연산결과가 참일 때 수행될 문장들을 적는다.(처음 한번은 무조건 실행)
    } while (조건식);
    profile
    개발 블로그

    0개의 댓글