1. int 타입을 자세히 알아보기
변수에 정수를 저장하려면 int 타입을 사용해야 합니다.
int는 Integer(영어로 “정수”라는 뜻)의 축약형으로, 이 타입이 정수를 저장할 수 있음을 나타냅니다.
int 타입 변수는 -20억부터 +20억까지 정수를 저장할 수 있습니다. 좀 더 정확히 말하면, -2,147,483,648부터 2,147,483,647까지입니다.
흥미로운 사실
이처럼 딱 떨어지지 않는 값은 컴퓨터 메모리의 구조와 관련이 있습니다.
Java에서 int 타입은 4바이트 메모리를 사용합니다. 각 바이트는 8비트로 이루어져 있으며, 각 비트는 2개의 값 — 0 또는 1만 가질 수 있습니다. int 변수는 32비트이므로 총 4,294,967,296개의 서로 다른 값을 표현할 수 있습니다.
이 범위의 절반은 음수, 나머지 절반은 양수에 할당됩니다. 그래서 범위가 -2,147,483,648부터 2,147,483,647까지가 됩니다.
2. int 타입 변수 만들기
int 타입은 정수를 저장하기 위한 타입입니다. 정수를 저장할 수 있는 변수를 코드에서 만들려면 다음과 같은 형태의 명령을 사용합니다:
int imya;
여기서 imya는 변수의 이름입니다. 예:
| 명령 | 설명 |
|---|---|
|
정수형 변수 x가 생성됩니다 |
|
정수형 변수 count가 생성됩니다 |
|
정수형 변수 currentYear가 생성됩니다 |
대소문자를 구분합니다: int color와 int Color는 서로 다른 두 변수를 선언합니다.
Int Color와 INT COLOR 같은 명령은 컴파일러가 전혀 이해하지 못해 오류가 발생합니다. int는 정수 타입을 나타내는 키워드이며 반드시 소문자로만 씁니다.
3. 변수 선언의 축약 표기
프로그램의 한 위치에서 같은 타입의 변수를 여러 개 만들어야 한다면, 다음과 같은 축약 표기를 사용할 수 있습니다:
int imya1, imya2, imya3;
예:
| 명령 | 동일 명령의 축약형 |
|---|---|
|
|
|
|
|
|
4. 값 할당
int 타입 변수에 값을 넣으려면 다음 명령을 사용합니다:
imya = znachenie;
여기서 값은 임의의 정수식일 수 있습니다. 예:
| 명령 | 비고 |
|---|---|
|
|
|
변수에는 “20억” 값이 들어갑니다 |
|
변수에는 “마이너스 천만” 값이 들어갑니다 |
|
컴파일되지 않습니다. 3,000,000,000은 int 타입의 최댓값 2,147,483,647보다 크기 때문입니다 |
5. 변수 선언과 초기화의 축약 표기
변수 생성(선언)과 값 대입을 한 문장으로 쓸 수 있습니다. 보통은 이렇게 쓰는데, 변수가 필요해지는 시점에 어떤 값을 저장하는 경우가 많기 때문입니다.
명령은 다음과 같습니다:
int imya = znachenie;
예:
| 명령 | 비고 |
|---|---|
|
|
|
변수에는 “20억” 값이 들어갑니다 |
|
변수에는 “마이너스 천만” 값이 들어갑니다 |
|
컴파일되지 않습니다. 3,000,000,000은 int 타입의 최댓값 2,147,483,647보다 큽니다 |
한 줄에서 여러 변수를 선언할 수도 있습니다. 이 경우 명령은 다음과 같습니다:
int imya1 = znachenie1, imya2 = znachenie2, imya3 = znachenie3;
예:
| 명령 | 비고 |
|---|---|
|
a는 5, b는 10, c는 15가 됩니다 |
6. 정수 표현식 계산
대입 연산자(등호) 오른쪽에는 임의의 표현식 — 숫자, 변수, 그리고 +, -, *, / 기호의 조합 — 이 올 수 있습니다.
괄호 ( )도 사용할 수 있습니다. Java에서도 수학과 마찬가지로 괄호 안의 표현식을 먼저 계산하고, 그다음 바깥을 계산합니다. 곱셈과 나눗셈은 같은 우선순위를 가지며, 덧셈과 뺄셈보다 우선합니다.
예:
| 명령 | 비고 |
|---|---|
|
변수에는 8이 들어갑니다 |
|
변수에는 1이 들어갑니다 |
|
변수에는 6이 들어갑니다 |
|
이 문장을 실행하면 오류가 발생하고 프로그램이 종료됩니다. |
표현식에는 변수도 참여할 수 있습니다:
int a = 1; // 변수 a에는 값 1이 들어갑니다
int b = 2; // 변수 b에는 값 2가 들어갑니다
int c = a * b + 2; // 변수 c에는 값 4가 들어갑니다
더 나아가, 동일한 변수가 대입 연산자 왼쪽과 오른쪽에 동시에 등장할 수도 있습니다:
int x = 5; // 변수 x에는 값 5가 들어갑니다
x = x + 1; // 변수 x에는 값 6이 들어갑니다
x = x + 1; // 변수 x에는 값 7이 들어갑니다
x = x + 1; // 변수 x에는 값 8이 들어갑니다
x = x + 1; // 변수 x에는 값 9가 들어갑니다
x = x + 1; // 변수 x에는 값 10이 들어갑니다
중요한 점은, Java에서 = 기호는 “같다”를 의미하는 기호가 아니라, = 왼쪽의 변수에 = 오른쪽 표현식을 계산한 결과 값을 저장하는 “대입” 명령이라는 것입니다.
7. 정수 나눗셈
Java에서 정수를 정수로 나누면 결과는 항상 정수입니다. 이때 나머지는 버려집니다. 즉, 소수 부분을 버린다고 볼 수 있습니다.
예:
| 명령 | 나눗셈 결과 | 비고 |
|---|---|---|
|
2.5 | 변수 a에는 2가 들어갑니다 |
|
6.6667 | 변수 b에는 6이 들어갑니다 |
|
-1.2 | 변수 c에는 -1이 들어갑니다 |
|
0.5 | 변수 d에는 0이 들어갑니다 |
8. 정수 나머지 연산
정수에 대해 Java에는 덧셈, 뺄셈, 곱셈, 나눗셈 외에 “나머지” 연산자도 있습니다. 퍼센트 기호 %를 사용합니다. 이는 소수 부분이 아니라 정수를 정수로 나눌 때의 “나머지” 그 자체입니다.
예:
| 명령 | 나눗셈 결과 | 비고 |
|---|---|---|
|
몫 2, 나머지 1 | 변수 a에는 1이 들어갑니다 |
|
몫 5, 나머지 0 | 변수 b에는 0이 들어갑니다 |
|
몫 1, 나머지 4 | 변수 c에는 4가 들어갑니다 |
|
몫 0, 나머지 1 | 변수 d에는 1이 들어갑니다 |
이는 매우 유용한 연산자로, 빈번하게 사용됩니다. 예를 들어 어떤 수가 짝수인지 아닌지 알아보려면 2로 나눈 나머지를 0과 비교하면 됩니다. 나머지가 0이면 짝수, 1이면 홀수입니다.
검사는 다음과 같이 작성합니다:
(a % 2) == 0
이미 짐작하셨겠지만, a % 2는 2로 나눈 나머지(즉 0 또는 1)를 구하는 것이고, ==는 0과 비교할 때 사용합니다.
9. 인크리먼트와 디크리먼트
프로그래밍에서는 변수를 1만큼 늘리거나 줄여야 할 때가 매우 많습니다. Java에는 이를 위한 전용 연산자가 있습니다:
인크리먼트(1 증가) 연산자는 다음과 같습니다:
a++;
이 명령은 a = a + 1;과 동일하게 동작하며, 변수 a를 1 증가시킵니다.
디크리먼트(1 감소) 연산자는 다음과 같습니다:
a--;
이 명령은 a = a - 1;과 동일하게 동작하며, 변수 a를 1 감소시킵니다.
예제 1
int x = 5; // 변수 x에는 값 5가 들어갑니다
x++; // 변수 x에는 값 6이 들어갑니다
x++; // 변수 x에는 값 7이 들어갑니다
x++; // 변수 x에는 값 8이 들어갑니다
x++; // 변수 x에는 값 9가 들어갑니다
x++; // 변수 x에는 값 10이 들어갑니다
예제 2
int x = 5; // 변수 x에는 값 5가 들어갑니다
x--; // 변수 x에는 값 4가 들어갑니다
x--; // 변수 x에는 값 3이 들어갑니다
x--; // 변수 x에는 값 2가 들어갑니다
x--; // 변수 x에는 값 1이 들어갑니다
x--; // 변수 x에는 값 0이 들어갑니다
x--; // 변수 x에는 값 -1이 들어갑니다
GO TO FULL VERSION