콘텐츠로 건너뛰기

[Java] 변수, 자료형

변수란 무엇인가

변수는 어떠한 값을 담을 수 있는 일종의 그릇이라고 생각하면 된다.
그리고 컴퓨터에서 데이터를 담을 수 있는 그릇은 바로 메모리이다.

자료형은 무엇인가

다만, 컴퓨터의 그릇은 담을 수 있는 것의 종류에 따라 그 종류도 천차만별이다.
그릇에 담을 것과 그릇의 종류를 일치시켜주는 것을 ‘자료형’이라고 한다.

자료형의 종류는 다음과 같다.

  1. 정수: int, long
  2. 실수: double
  3. 문자: char
  4. 문자열: String

그리고 보통은 아래와 같이 데이터를 담아준다.

int num1 = 365;
double num2 = 3.1415;
char c = 'a';
String s = "computer";

코딩 컨벤션

협업 프로젝트를 하다보면 다른 사람이 작성한 코드를 많이 볼 수 있다.
그런데 그 코드가 아래와 같이 너무 길고 지저분하다면 기분이 어떨까?

int 1illi1iil1 = 2, l1il1il1ll = 8;

무려 3개의 다른 문자인 1, l, i를 불규칙적으로 섞어 변수를 선언했다. 아마 저 개발자는 다른 개발자에게 키보드로 얻어 맞았을 것이다.

이를 막기 위하여 ‘코딩컨벤션'(Coding Convention)이라는 코드 작성 규약이 정의되어 있다.
다른 이들과 협업을 하기 위해 정해놓은 일종의 약속인 셈이다. (규약을 안 지켜도 프로그램 실행에는 문제 없음. 다만, 상도덕이 없을 뿐)

이것은 일종의 약속이기에 각 언어(C, C++, C#, Java, Python, Javascript, …)나 회사(Google, Apple, Naver, Kakao, …)에 따라 정의한 코딩 컨벤션은 다양하다. 보통은 변수나 함수명을 소문자로 시작하고 함수명 내에서 새로운 단어가 시작되면 대문자로 바꿔주는 CamelCase방식을 사용한다고 한다.
(예를들면, nextInt, CanYouGet, ohMyGod, iLoveCoffee 등과 같이 변수명을 짓기 권장된다)

변수 선언

컴퓨터는 흔히 Smart하다고 생각하지만 사칙연산 계산이 빠른 것이지 똑똑한 것은 아니다.
변수를 컴퓨터의 메모리가 앞서 이야기했던 것이 기억나는가?
컴퓨터에게 변수를 사용 하기 전에 변수를 위한 메모리 공간을 만들어달라고 미리 이야기해주어야 한다.
이것을 변수 선언이라고 한다.

int num = 8;
// 컴퓨터야. 정수형(int)의 num이라는 그릇쓸테니까 메모리 비워놔, 거기에 8이라는 데이터 넣어두고.

변수 포맷과 printf 함수를 활용한 출력

변수 포맷은 다음과 같다.

  1. 정수: int, long -> %d
  2. 실수: double -> %f
  3. 문자: char -> %c
  4. 문자열: String -> %s

그리고 이렇게 활용하면 된다.

public class Main {
public static void main (String args[]) {
int a = 3;
double b = 3.1415;
char c = 'a';
String s = "computer";

System.out.printf("%d \n", a);
System.out.printf("%f \n", b);
System.out.printf("%c \n", c);
System.out.printf("%s \n", s);
}
}
<출력>
3
3.1415
a
computer

물론, 지난 포스트에서 배웠던 System.out.print나 System.out.println을 다음과 같이 활용할수도 있다.

public class Main {
public static void main (String args[]) {
int a = 3;
double b = 3.1415;
char c = 'a';
String s = "computer";

System.out.print(a+"\n"+b+"\n"+c+"\n"); // \n 문자를 활용한 줄바꿈
System.out.println(s); // println 함수를 활용한 줄바꿈
}
}
<출력>
3
3.1415
a
computer

소수점 반올림하여 출력

실수값을 가지는 double 자료형의 변수는 일반적으로 소수점 자리를 맞춰 출력한다.
printf 함수 활용 간 실수의 변수포맷인 %f를 %. _f 형태로 지정하면 된다.
예제를 살펴보자.

public class Main {
public static void main (String args[]) {
double n = 3.141592;
System.out.printf("%.2f", n); // 소수점 둘째짜리 반올림
}
}
<출력>
3.14

변수값 복사

아래 코드를 보고 출력결과를 맞춰보자.

public class Main {
   public static void main (String args[]) {
      int a = 1;
      int b = 2;
      int c = 3;

      a = b = c;
      System.out.println(a + " " + b + " " + c);
   }
}

1) 1 2 3
2) 1 1 1
3) 2 2 2
4) 3 3 3
5) 3 2 1

정답은 4번이다.

<출력>
3 3 3

= 연산자를 chain 형식으로 사용하면, 가장 오른쪽에서 부터 왼쪽으로 데이터값이 복사된다.
즉, b에 c의 값이 들어가고 a에는 c의 값이 들어간 b의 값이 들어간다.

0 글이 마음에 드시면 하트를 눌러주세요! 행복한 고민이 됩니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다