Welcome to Wesley & Harry's Traveling & Programming

IT Program/Java Basic

변수 & 변수 종류 & 예약어 & 작성 규칙(변수 명명 규칙)&println print 차이

Wesley & Harry 2022. 2. 25. 15:12
반응형

변수 : 하나의 값을 저장할 수 있는 메모리 공간

변수의 이름을 가진 이유는 프로그램에 의해서 수시로 값이 변동될 수 있기 때문이다.

변수에는 다양한 타입의 값을 저장하는 게 불가능하다. ex) 정수 타입의 변수에는 정수만 저장 가능

 

변수명 작성 규칙(변수 명명 규칙) 예시

우리는 변수명의 작성 규칙을 따를 필요가 있다. 에러가 나거나 에러를 사전에 방지하기 위함이다.

작성 규칙은 아래와 같다.

작성 규칙 example
첫 번째 글자는 숫자로 시작할 수 없고 문자이거나 $ , _ 이어야 한다. color, $wesley, _harryColor
영어 대소문자를 구분해야한다. mysound, mySound 서로 다른 문자
문자수 제한 없다.  
예약어 사용 불가능하다. 예약어는 아래에 적어두겠다. 양이 많다.(예약어 사용시 컴파일에러)
첫문자는 소문자로 시작하고 다른단어 혼용시 두번째 단어 맨 앞을 대문자로 기재한다. mySound, tistoryColor, soundVolum

 

예약어는 우선 기본적인, 초반 쓰이는 종류만 알아본다. 자바를 사용하다 보면 자연스레 알게 된다.

 

예약어 분류 예약어 종류
기본 데이터 boolean, byte, char, short, int, long, float, double
접근 지정자 private, protected, public
클래스 관련 class, abstract, interface, extends, implements, enum
제어문 if, else, switch, case, default, for, do, while, breake, continue
논리값 true, false
예외 try, catch, finally, throw, throws

등등 다양한 종류가 있다.

 

변수를 선언하기 전 우리는 변수의 타입과 이름을 정해야 한다.

우선 변수의 기본 데이터 타입을 알아본다.

종류 기본타입 메모리 사용 크기(byte) 메모리 사용 크기(bit)
정수 byte 1 8
char 2 16
short 2 16
int 4 32
long 8 64
실수 float 4 32
double 8 64
논리 boolean 1 8

여기서 bit와 byte는

8개의 bit를 묶은 것이 1 byte로 설명할 수 있으며 2진수로 이루어져 있습니다.

1비트는 0,1로 나타낼 수 있는 숫자는 2입니다 (2^1)

2비트는 00,01,10,11로 나타낼 수 있는 숫자는 4입니다. (2^2)

3비트는 000,001,010,011,100,101,110,111로 나타낼 수 있는 숫자는 8입니다.(2^3)

이런 식으로 bit가 구성되어 있으며 8비트의 경우 2^8로 나타낼 수 있는 숫자는 256이 됩니다.

1bit 0,1
2bit 00,01,10,11
3bit 000,001,010,011,100,101,110,111

기본 타입을 알아보았으니 선언을 해본다.

변수명은 항상 값이 무슨 뜻을 지니는지 알아볼 수 있도록 짓는 것이 좋다.

과거 변수명을 내 멋대로 지었다가 변수명이 겹쳐 애를 먹었던 적이 있다. 늘 최선은 미리 방지하는 것이라 생각한다.

 

int wesley;
double harry;

위 코드의 int는 정수형 타입으로써 정수 값을 저장할 수 있도록 선언하는 역할을 합니다.

double은 실수 값을 저장할 수 있도록 선언하는 역할을 합니다.

이렇게 되면 wesley라는 변수명엔 정수를 저장할 수 있고, harry라는 변수명엔 실수형을 저장할 수 있게 됩니다.

int wesley, wesley1, wesley2;

이런 식으로 사용하게 되면 한 번에 int 형의 변수명을 선언할 수 있습니다.

 

이제 변숫값을 저장해봅니다. 변수값을 저장하는 데에는 두 가지 방법이 있습니다.

우선 첫 번째로 wesley라는 변수명을 int로 선언해 줍니다.

그리고 난 뒤 wesley를 20이라는 숫자로 선언해주면

wesley에 20이 저장됩니다.

int wesley;
wesley = 20;

System.out.println(wesley);

를 통해 알아본 결과 Console에 20이 나온 것을 알 수 있습니다.

 

두 번째 방법은 한 번에 선언하는 것입니다.

int wesley = 15;

15가 나오는 것을 확인할 수 있습니다.

하지만 여기서 java를 처음 접하는 사람이라면 궁금증이 생기기 마련입니다.

int wesley = 15;
int wesley = 20;
System.out.prinln(wesley);

이런 식으로 작성하면 무슨 값이 나오는 걸까?

두 개의 값이 다 저장되는 걸까 하는 의문 말입니다.

이러한 궁금증은 직접 실행을 해보면 알 수 있습니다. 

이 해당 사진을 보면 Duplicate local variable wesley라고 적혀있다.

이 오류는 wesley의 지역 변수가 중복된 것이다.

이를 해결하기 위해선 어떻게 해야 할까.

int wesley = 15;
wesley = 20;
System.out.println(wesley);

이렇게 쓰면 오류가 없어지고 우리가 처음에 알고자 했던 의문에 맞는 답이 된다.

결괏값을 살펴본다.

우리는 여기서 한 가지 wesley에 다른 수를 또 넣으면 기존에 저장되어 있던 15가 사라지고 20이 저장되는 것을 알 수 있었습니다. java는 위에서부터 읽기 때문에 15를 저장한 뒤 15를 지우고 20이 들어가게 되는 겁니다.

저희는 이것을 '초기화 한다' 라고 합니다.

만약 저희가 이름을 헷갈리게 지어서 변수명이 중복된다면 그전에 쓴 데이터는 날아가게 되기 때문에 변수명은 늘 신중하게 짓는 것을 추천드립니다.

늘 위에서 아래로를 기억하면 좋습니다.

int wesley = 20;
wesley = 15;
System.out.println(wesley);

15와 20 자리를 바꿔줘

이렇게 적는다면 정답은 15가 나오는 것입니다.

int wesley = 20;
wesley = 15;
System.out.prinln(wesley + wesley);

이렇게 적으면 결과값은 35가 나올까? 정답은 아니다.

30이 나오는 것을 확인할 수 있다.

여기서 그치지 않고 만약 20과 15의 값을 다 보고 싶을 경우가 있을 것입니다.

위에서 20의 숫자를 가지고 이리저리 굴리고 쓸고 다 쓴 뒤 필요 없어져 다른 수를 이리저리 굴리고 싶을 경우가 있습니다.

자바는 위에서부터 아래라는 말을 했었습니다.

예를 들어 System.out.println();을 이리저리 굴리는 과정이라 생각해봅니다.

그럼 답은 간단합니다. 

int wesley = 20;
System.out.println(wesley);
wesley = 15;
System.out.println(wesley);

이렇게 작성하면 20으로 데이터를 이리저리 굴리고 다 사용이 되면 15로 선언해 준 뒤 다시 데이터를 굴릴 수 있는 것을 알 수 있습니다. 해당 코드의 결과값입니다.

println과 print의 차이

System.out.println();

System.out.print();

ln은 줄 바꿈을 의미합니다.

int wesley = 20;
System.out.println(wesley);
wesley = 15;
System.out.println(wesley);

20

15

이런 식으로 결과값을 구분 지어 알고 싶다면

System.out.println(); 를 사용하고

 

int wesley = 20;
System.out.print(wesley);
wesley = 15;
System.out.println(wesley);

2015

라고 출력을 하고 싶을 경우

System.out.print();를 사용하면 됩니다.

아래가 println인 이유는 값이 나온 뒤 ln이 적용되기 때문에

2015(줄바꿈)으로 적용되기 때문에 상관없습니다.

반응형