상수의 데이터 타입
변수는 변할 수 있는 값을 의미하고 상수는 변하지 않는 값을 의미한다.
예를 들어 int a = 1; 에서 int는 데이터 타입 a는 변수이고 1은 상수인 것이다.
산술 연술자
산술 연술자는 크게 다섯 가지가 존재한다.
- + = 더하기
- - = 빼기
- * = 곱하기
- / = 몫
- % = 나머지
사용하는 방법은 아래에서 살펴보자.
// result의 값은 2
int result = 1 + 1;
System.out.println(result);
// result의 값은 1
result = result - 1;
System.out.println(result);
//result의 값은 2
result = result * 2;
System.out.println(result);
// result의 값은 1 몫
result = result / 2;
System.out.println(result);
// result의 값은 9
result = result + 8;
System.out.println(result);
// result의 값은 2 나머지
result = result % 7;
System.out.println(result);
위의 예제를 살펴보면
처음에 result 값은 1+1인 2가 출력되고
두 번째 값은 result값(2)에서 1을 뺀 1이 출력되고
세 번째 값은 result값(1)에서 2를 곱한 2가 출력되고
네 번째 값은 result값(2)에서 2를 나눈 몫인 1이 출력되고
다섯 번째 값은 result값(1)에서 8을 더한 9가 출력되고
마지막으로 여섯번째 값은 result값(9)을 7로 나눈 나머지인 2가 출력된다.
정수와 실수의 산술 연산
자바는 정수와 실수를 엄격하게 구분한다.
그렇다면 자바에서 정수와 실수의 산술 연산은 어떻게 실행이 될까?
정수와 실수를 산술 연산을 하게 된다면 실수로 표현이 된다.
이유는 자바는 더욱 정밀한 것을 선택하게 되는데 실수가 정수보다 더욱 정밀하기 때문이다.
아래 예제를 통해 살펴보자.
int a = 10;
int b = 3;
float c = 10.0F;
float d = 3.0F;
System.out.println(a/b); //정수의 틀 안에서 현재 실수를 사용하는 것이기 때문에 소수점 이하 값들은 누락된다.
System.out.println(c/d); //실수이기 때문에 소수점 이하 값들이 누락되지 않는다.
System.out.println(a/d); //정수와 실수의 계산이기 때문에 더 조밀한 숫자임 실수로 형변환하여 소수점 이하 값들이 누락되지 않는다.
위의 예제를 살펴보게 되면 결과값은 어떻게 나올까?
- a / b = 3
- c / d = 3.3333333
- a / d = 3.3333333
결과값은 순서대로 위에 와 같다.
a와 b는 정수끼리의 계산이기 때문에 3이 나오게 된다.
정수의 틀 안에서 계산을 하기 때문에 소수점 이하 값들은 누락되게 된다.
그와 반대로 실수끼리의 계산인 c / d는 실수이기 때문에 소수점 이하 값들이 누락되지 않는 것을 볼 수 있다.
그렇다면 마지막 a / d는 정수와 실수의 연산인데 어째서 실수로 나오게 되는 것일까?
위에서 설명한 것처럼 자바는 정수와 실수를 산술 연산을 하게 될 때 더욱 정밀한 실수를 선택하는 것이다.
단항 연산자
단항 연산자는 크게 4가지로 분류할 수 있다.
- + = 양수를 표현한다. 실제로는 사용할 필요가 없다.
- - = 음수를 표현한다.
- ++ = 증가 연산자로 항의 값을 1씩 증가시킨다.
- -- = 감소 연산자로 항의 값을 1씩 감소시킨다.
아래의 예제를 통해 어떻게 사용하는지 알아보자.
int i = 3;
i++; //i = i+1과 같다.
System.out.println(i); // 4출력
++i;
System.out.println(i); // 5출력
System.out.println(++i); // 6출력 i라는 변수에 1이라는 값을 더한 결과를 괄호안에 치환해서 println하는
System.out.println(i++); // 6출력 i를 println한 후 i를 1증가시키라는 명
System.out.println(i); // 7출력 위에서 i++를 해줬기 때문에 7이 출력
위의 예제에 주석처리로 설명을 해놓았지만 다시한번 살펴보면
- int i = 3; // 현재 i는 3이다.
- i++ // 현재 i는 4이다. i++는 i = +1과 같기 때문이다.
- i를 출력 // 4가 출력된다.
- ++i; // 현재 i는 5이다.
- i를 출력 // 5가 출력된다.
- ++i를 출력 // 6이 출력된다 i라는 변수에 1을 더한 결과를 괄호 안에 치환해서 출력하기 때문이다.
- i++를 출력 // 6이 출력된다 이유는 i를 println 한 후 1을 증가시키기 때문이다.
- i를 출력 // 7이 출력된다. 이유는 7번째 줄에서 i++를 해주었기 때문에 7이 되는 것이다.
자바는 확실히 파이썬과는 다른 것 같다!
열심히 기초를 공부해서 헷갈리지 않아야 할 것 같다.
팀토이프로젝트를 시작하여 협업을 하기 시작했는데
깃허브를 개인프로젝트가아닌 팀 프로젝트 용도로 쓰는 게 신선하다!
팀 토이 프로젝트도 열심히 하고 자바 기초 공부도 열심히 해서
스프링 부트도 경험하고 싶다!
'Today I Learned' 카테고리의 다른 글
TIL] 2021/08/01 (0) | 2021.08.02 |
---|---|
TIL] 2021/07/31 (0) | 2021.08.01 |
TIL] 2021/07/30 (0) | 2021.07.31 |
TIL] 2021/07/29 (0) | 2021.07.30 |
TIL] 알고리즘 공부 (0) | 2021.06.22 |