[Java] 변수, 연산자, 조건문

변수

1. 변수

  • 변수 (Variable) : 값을 저장할 수 있는 메모리의 특정 번지에 붙여진 이름
  • 변수 선언
    • int a;
    • 변수 선언 : 변수를 만드는 것
    • 변수 a에는 숫자 정수를 보관할 수 있다.
    • 변수를 선언하면 컴퓨터의 메모리 공간을 확보해서 그곳에 데이터를 저장한다. 변수의 이름을 통해서 해당 메모리 공간에 접근한다.
    • int c,d; - 한 번에 여러 변수를 선언할 수 있다.
  • 변수에 값 대입
    • a = 10;
    • 숫자에 보관할 수 있는 데이터 저장소인 변수 a에 값 10을 저장한다.
    • 변수 초기화 : 선언한 변수에 처음으로 값을 대입해서 저장하는 것
    • int b = 2; - 변수 선언과 초기화를 한번에 할 수 있다.
    • 변수를 초기화하지 않고 사용하면 컴파일 에러가 발생한다.
  • 변수 값 읽기
    • System.out.println(a); - 변수 a의 값을 읽음
    • 실행 시점에 변수의 값을 읽는다.
    • 변수의 값은 반복해서 읽을 수 있다.
  • 변수 값 변경
    a = 10; // 변수 a에 10을 저장한다.
    System.out.println(a); // 10 출력
    a = 50; // 변수 a의 값을 50으로 변경한다.
    System.out.println(a); // 50 출력
    
    • 변수의 값을 변경하면 변수에 들어있던 기존 값은 삭제된다.

2. 변수 타입

  • 변수 타입의 예
image
  • int : 정수를 다룬다. 예) 1, 100, 1000
    • int i = 2147483647; // -2,147,483,648 ~ 2,147,483,647 (약 20억)
  • double : 실수를 다룬다. 예) 0.2, 1.5, 100.121
  • boolean : true, false 값만 사용할 수 있다.
  • char : 문자 하나를 다룬다. 작은따옴표(‘)를 사용한다. 예) ‘A’, ‘가’
  • String : 문자열을 다룬다. 큰따옴표(“)를 사용한다. 예) “hello java”
  • 자신의 타입에 맞는 데이터 사용
    • 각 변수는 지정한 타입에 맞는 값을 사용해야 한다.

3. 다양한 변수 타입

  • 정수형
    • byte : -128 ~ 127 (1byte, 28)
    • short : -32,768 ~ 32,767 (2byte, 216)
    • int : -2,147,483,648 ~ 2,147,483,647 (약 20억) (4byte, 232)
      • 정수에 기본으로 int를 사용한다. 20억이 넘을 것 같으면 long을 쓰면 된다.
    • long : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (8byte, 264)
  • 실수형
    • float : 대략 -3.4E38 ~ 3.4E38, 7자리 정밀도 (4byte, 232)
      • float형 사용 시, f를 붙여서 float형으로 지정해야 한다.
    • double : 대략 -1.7E308 ~ 1.7E308, 15자리 정밀도 (8byte, 264)
  • 기타
    • boolean : true, false (1byte)
    • char : 문자 하나 (2byte)
    • String : 문자열을 포함한다. 메모리 사용량은 문자 길이에 따라 동적으로 달라진다.

4. 변수 명명 규칙

  • 규칙
    • 변수 이름은 숫자로 시작할 수 없지만, 숫자를 이름에 포함할 수 있다.
      • 예 : 1num(X), 1st(X), myVar1(O), num1(O)
    • 이름에는 공백이 들어갈 수 없다.
    • 자바의 예약어를 변수 이름으로 사용할 수 없다. (예: int, class, public)
    • 영문자, 숫자, $, _만 사용할 수 있다.
  • 관례
    • 변수 이름은 의미있고, 그 용도를 명확하게 설명해야 한다.
    • 변수 이름은 소문자로 시작하는 낙타 표기법 (camel case)을 사용한다.
      • 예 : orderDetail, myAccount
    • 클래스 이름만 대문자로 시작한다. 나머지는 모두 소문자로 시작한다.
      • 클래스 예: Person, OrderDetail
    • 상수는 모두 대문자를 사용하고 언더바로 구분한다.
      • 예 : USER_LIMIT
    • 패키지는 모두 소문자를 사용한다.
      • 예 : org.spring.boot

연산자

1. 산술 연산자

  • 연산자 종류
    • 산술 연산자 : +, -, *, /, %(나머지 연산자)
      • 10 / 0과 같이 숫자는 0으로 나눌 수 없다. 이 경우 프로그램에 오류 발생
    • 증감 연산자 : ++, –
    • 비교 연산자 : == , !=, >, <, >=, <=
    • 논리 연산자 : &&(AND), ||(OR), !(NOT)
    • 대입 연산자 : = , += , -=, *=, /=, %=
    • 삼항 연산자 : ? :

2. 문자열 더하기

  • 자바에서는 문자열에 + 연산자를 사용하여 두 문자를 연결할 수 있다.
    String result1 = "hello " + "world";
    System.out.println(result1); // hello world
    
  • 자바에서는 문자와 숫자를 더하면 숫자를 문자열로 변경한 다음에 서로 더한다.
    String result2 = "a + b = " + 10;
    System.out.println(result2); // a + b = 10
    


3. 연산자 우선순위

  • ()를 사용한 곳이 먼저 계산된다.
  • 연산자 우선순위가 애매하거나 복잡하다면 괄호를 고려해야 한다.

4. 증감 연산자

  • ++ (증가), -- (감소)
  • 전위, 후위 증감연산자
    • ++a : 전위 증감 연산자. 증감 연산이 먼저 수행된 후 나머지 연산이 수행된다.
      int a = 1; 
      int b = 0;
      b = ++a // a의 값을 먼저 증가시키고, 그 결과를 b에 대입
      System.out.println("a = " + a + ", b = " + b); // 결과 : a = 2, b = 2
      
    • a++ : 후위 증감 연산자. 다른 연산이 먼저 수행된 후 증감 연산이 수행된다.
      int a = 1;
      int b = 0;
      b = a++; // a의 현재 값을 b에 먼저 대입하고, 그 후 a의 값을 증가시킨다.
      System.out.println("a = " + a + ", b = " + b); // 결과 : a = 2, b = 1
      
    • 증감 연산자를 단독으로 사용하는 경우, 다른 연산이 없기 때문에 본인의 값만 증가하며, 전위와 후위 둘다 결과가 같다.
      • ++a, a++

5. 문자열 비교

  • .equals()
    • 문자열이 같은 지를 비교할 때 사용한다.

        String str1 = "문자열1";
        String str2 = "문자열2";
              
        boolean result1 = "hello".equals("hello"); //리터럴 비교
        boolean result2 = str1.equals("문자열1");//문자열 변수, 리터럴 비교
        boolean result3 = str1.equals(str2);//문자열 변수 비교
      

6. 논리 연산자

  • && (그리고) : 두 피연산자가 모두 참이면 참을 반환, 둘 중 하나라도 거짓이면 거짓을 반환
  • || (또는) : 두 피연산자 중 하나라도 참이면 참을 반환, 둘다 거짓이면 거짓을 반환
  • ! (부정) : 참이면 거짓, 거짓이면 참을 반환

7. 대입 연산자

  • = : 값을 변수에 할당하는 연산자
  • 축약 대입 연산자 : += , -= , *= , /= , %=

8. 비트 연산자

  • 비트 연산자: &, |, ^, ~, <<, >>, >>>
  • 실무에서 거의 사용할 일이 없으니, 필요할 때 찾아볼 것




김영한의 자바 입문을 참고하였습니다

© 2021. All rights reserved.

yaejinkong의 블로그