JAVA 변수와 연산

변수

  • 변수의 이름과 변수의 자료형을 선언해주어야 한다.
  • [ 자료형(data type) ] [ 변수의 이름 ]
  • int: x가 어떤 자료형을 저장할지
    1
    2
    int a; // 정수형 변수
    String s; // 문자열 변수

변수 이름 규칙

  • 대소문자 구분 (ex. bunny와 Bunny는 다름)
  • 숫자로 시작할 수 없음
  • 자바의 예약어 사용 불가 (ex. class, public …)
  • 특수기호는 ‘_(언더바)’, ‘$’ 외에 사용 불가
    • $는 주로 자동 생성되는 변수명으로 사용
    • _는 보통 상수 이름에 사용
  • 카멜 케이스 기법으로 작성하는 것이 좋다.

변수 사용

변수에 값을 대입하거나 연산을 할 수 있다.

1
2
3
4
5
6
7
8
9
10
int age = 20;
int num = 25;

System.out.println(num + age); //20 + 25 출력

age = num; // 25을 age에 지정
System.out.println(num + age); // 25 + 25 출력

age = age + 1; // 25 + 1을 age에 지정
System.out.println(num + age); // 25 + 26 출력

자료형

Type Bit Range of Values
byte 8 -2^7 ~ 2^7-1 (-128 ~ 127)
short 16 -2^15 ~ 2^15-1 (-32768 ~ 32767)
int 32 -2^31 ~ 2^31-1 (-2147483648 ~ 2147483647)
long 64 -2^63 ~ 2^63-1 (-9223372036854775808 ~ 9223372036854775807)
float 32 *single-precision 32-bit IEEE 754 floating point
double 64 *double-precision 64-bit IEEE 754 floating point
char 16 \u0000 ~ \uffff (0 ~ 2^15-1)
boolean *VMD true, false

자료형의 기본값

type 기본값
byte 0
short 0
int 0
long 0L

숫자형

  • 정수형: byte, short, int, long
    • int를 정수형 메인으로 사용하기 때문에 정수를 입력하면 기본적으로 int로 간주한다.
    • int의 범위를 벗어나는 값을 쓰면 오류가 난다.
    • long을 표현하기 위한 리터럴에는 뒤에 l 혹은 L을 사용하지만, 대문자인 L을 권장한다.
      1
      2
      long x = 1234567890l;
      long x = 1234567890L;
  • 소수형: float, double
    • double이 더 정밀하게 값을 보관할 수 있다.
    • 자바에서는 double을 소수형의 기본으로 사용한다.
    • float를 사용하고 싶다면 소수를 사용하고 뒤에 f를 붙인다.
      1
      float f = 3.14f;

글자

  • char: 글자 하나만 넣을 수 있고, 작은 따옴표로 둘러싸야 한다.
  • 글자를 여러 개 담고 싶다면 큰 따옴표로 둘러싸고 String이라는 자료형을 사용한다.

문자열

  • String은 기본 자료형이 아니라 클래스이다.
  • 클래스를 변수의 형으로 쓰고 변수를 선언하면 그 변수는 클래스의 인스턴스를 담을 수 있다.
    1
    2
    3
    4
    5
    6
    7
    String a = "Hello, I'm";
    String b = ".";

    System.out.print(a);
    System.out.print(26);
    System.out.print(b);
    // Hello, I'm 26.

불린

  • 참(true), 거짓(false)을 담는다.

연산자

문자열 연산

  • 덧셈(+) 연산자를 사용하면 문자열을 연결할 수 있다.
  • 문자와 숫자를 더하면 숫자가 문자열로 바뀌고, 문자열과 불린을 더하면 불린이 문자열로 바뀐다.
  • 큰 따옴표(")로 둘러쌓인 문자열 안에 큰 따옴표(")를 넣을 경우 역슬래쉬(\, 맥) 혹은 원화표시(, 윈도우)를 사용한다.
    1
    2
    3
    System.out.println("I am " + 27 + "years old.");
    System.out.println("The result is " + false + ".");
    System.out.println("데카르트는 \"나는 생각한다. 고로 존재한다.\"라고 말했다.");
    1
    2
    3
    I am 27 years old.
    The result is false.
    데카르트는 "나는 생각한다. 고로 존재한다."라고 말했다.

이스케이프 문자 (Escape Character)

  • \ 또는 를 이용하여 문자열 안에 확장된 표현을 하는 문자.
  • 줄 바꿈을 위해서 맥에서는 \n, 윈도우에서는 \r\n을 사용해야 한다.
Escape Sequence description
\t
\b 백스페이스
\n 줄바꿈 (new line)
\r 줄바꿈 (carriage return)
\f 폼 피드 (form feed)
작은 따옴표
큰 따옴표
\ 역슬래쉬

숫자 연산

  • 정수형과 정수형 간의 연산은 같은 자료형의 결과값을 갖는다.
  • 서로 다른 자료형의 연산은 랭크가 더 높은 자료형의 결과값을 갖는다.
  • 단항 연산자도 존재한다. (-a, ++a, –a …)
연산자 설명
+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
% 나머지

불린 연산

비교 연산자

두 숫자형 값을 비교하고 싶을 때 사용한다.

1
2
3
4
5
6
7
int a = 5;
int b = 7;

System.out.println(a > b); // false
System.out.println(a < b); // true
System.out.println(a == b); // false
System.out.println(a != b); // true

불린 연산자

  • AND(&&)의 경우 양쪽 다 true여야 true가 나오고 하나라도 false라면 false가 나온다.
    1
    2
    System.out.println(true && true); // true
    System.out.println(true && false); // false
  • OR(||)의 경우 양쪽 다 false여야 false가 나오고 하나라도 true라면 true가 나온다.
    1
    2
    System.out.println(true || false); // true
    System.out.println(false || false); // false
  • NOT(!)의 경우 불린값을 뒤집는다.
    1
    System.out.println(!true); // false
  • 숫자 연산처럼 섞을 수도 있다.
    1
    System.out.println(!(false && (true || false))); // true

리터럴

  • 소스 코드의 고정된 값을 대표하는 용어
  • 정수 리터럴: 123, 11 , 3
  • 롱 리터럴: 1234567890L
  • double을 명시하는 리터럴에는 d를 붙여주는 방법도 있다.

랭크

위에서 아래로 갈수록 랭크가 높은 자료형이다.

Type Size Range
byte 1byte -128 … 127
short 2byte -32,768 … 32,767
int 4 byte -2,147,483,648 … 2,147,483,647
long 8 byte -9,223,372,036,854,775,808 … 9,223,372,036,854,775,807
float 4 byte 1.4023985 x 10^-45 … 3.4028235 x 10^38
double 8 byte 4.940656458412465 x 10^-324 … 1.797693134862316 x 10^308

형변환

  • 랭크에 따라 형변환이 가능하다.
  • 바꾸고자 하는 형(to)이 기존의 형(from)보다 더 넓은 데이터를 담을 수 있는 자료형의 경우 특별한 처리 없이 형변환이 가능하다.
to\from byte short int long float double
byte - X X X X X
short O - X X X X
int O O - X X X
long O O O - X X
float O O O O - X
double O O O O O -
1
2
int a = 36;
double b = a; // int to double

타입 캐스팅

  • 값이나 변수에 (자료형)을 적어주면 강제적으로 형변환시킬 수 있다.
  • 숫자 자료형들 사이에서는 모두 가능하다.
  • 더 큰 랭크의 값을 더 작은 랭크의 변수에 담을 수는 있지만 데이터 손실이 발생한다.
1
2
3
int a = 3;
double b = (double) a;
System.out.println(b); // 3.0
1
2
3
double pi = 3.14;
int myInt = (int) pi;
System.out.println(myInt); // 3
1
2
int a= 9, b = 5;
System.out.println((double) a / b); // 1.8

REFERENCE
코드잇 온라인 강의 자바 기초

  • © 2020-2025 404 Not Found
  • Powered by Hexo Theme Ayer