01_basic Variable2
package basic;
public class Variable2 {
public static void main(String[] args) {
int a = 320;
int b = 258;
int sum = a + b;
int sub = a - b ;
int mul = a * b ;
double div = (double)a / (double)b;
System.out.println( a + " + " + b + " = " + sum );
System.out.println( a + " - " + b + " = " + sub );
System.out.println( a + " * " + b + " = " + mul );
System.out.println( a + " / " + b + " = " + String.format("%.2f", div) );
}
}
/*
* 변수를 이용하여, 320 , 258의 합을 구하시오
*
* [실행결과]
* 320 + 258 = 578 (sum)
* 320 - 258 = 62 (sub)
* 320 * 258 = 82560 (mul)
* 320 / 258 = 1.24 (div)
*
* */
1. 변수의 연산
변수를 이용하여 값이 변하는 연산을 보다 효율적으로 적용할 수 있다. 값을 담는 변수 a 와 b에 계산을 원하는 값을 담고
각각의 값을 연산할 수 있는 값들을 지정해준다.
2. 타입변환( 형 변환, 타입 캐스팅 )
위 코드에서
나눗셈 연산 다시말해, int형의 나눗셈의 경우,
정수형 자료형인 int의 연산결과는 소숫점 이하가 생략된 정수의 값만 표기된다.
이것은 저장공간의 차이에 따른 산술결과이며, 소숫점 이하의 값까지 연산이 필요한 경우,
자료형을 변환하여 이러한 문제를 해결할 수 있다.
1) 자동 타입변환
프로그램 실행 중 자동으로 타입이 변환되는것을 의미한다. 자동타입 변환은 연산식이나 실행문에서 서로 다른 데이터 타입이 나타날때 발생하며 자바 컴파일러는 가장 큰 데이터 타입을 통일한다.( 작은데이터형 → 큰 데이터형)
double d1 = 5 * 3.14; // 정수5와 실수3.14의 곱에서, 정수5를 실수5.0으로 자동 타입 변환
double d2 = 1; // 정수 1을 실수 1.0으로 자동 타입 변환
2) 강제 타입변환
타입 변환 연산자를 사용하여 데이터 타입을 강제로 변환하는 연산이다.
저장공간이 큰 데이터타입에서 작은 데이터타입으로 형 변환이 이뤄지므로 일부 데이터의 손실을 감수하며, 이로인한 부정확한 연산이 이뤄질 수 있어, 타입별 최솟값 최대값 상수를 이용하는 것이 좋다.
int a = (int)3.14; //double형의 3.14에서 정수 3만 저장되고 일부 데이터 손실
short b = (byte)300; //같은 정수형인 int값 300을 byte로 형변환하면 데이터 손실 발생
자료형 첫자를 대문자로 바꾸고, .MAX_VALUE로 자료형의 최대값을 확인할 수 있다.
숫자 데이터 타입 | 최소값 상수 | 최대값 상수 |
byte | Byte.MIN_VALUE | Byte.MAX_VALUE |
short | Short.MIN_VALUE | Short.MAX_VALUE |
int | Inteager.MIN_VALUE | Inteager.MAX_VALUE |
long | Long.MIN_VALUE | Long.MAX_VALUE |
float | Float.MIN_VALUE | Float.MAX_VALUE |
double | Double.MIN_VALUE | Double.MAX_VALUE |
자바에서 기본으로 제공하는 데이터 타입의 최소,최대값 상수,
자료형 첫자를 대문자로 바꾸고, .MAX_VALUE로 자료형의 최대값을 확인할 수 있다.
타입간의 변환 방법
1. 문자와 숫자간의 변환
2. 문자열로의 변환
01_basic NumberTest.java
package basic;
public class NumberTest {
public static void main(String[] args) {
//'A'의 아스키 코드는 정수 65이다
System.out.println('A' + 3 ); //68
System.out.println("A" + 3 ); //A3
System.out.println('A' + 32 ); //97
System.out.println((char)('A' + 32 )); //a, 로표기됨 (강제)형변환(Casting)
System.out.println( 25 / 36 ); // 0
System.out.println( 25 / 36.0 ); // 0.0
System.out.println( String.format("%.3f", 25 / 36.0) ); // 소수 이하 3째 자리까지만 나오게
}
}
String타입으로 지정되는 문자열의 경우 숫자로의 변환은
Integer.parseInt("3") //숫자 3으로 출력
Double.parseDouble("3.4") //소수 3.4로 출력
이와같이 형태로의 변환이 가능하지만
문자 타입의 Char 경우는 숫자의 연산만으로도 변환될 수 있다.
이것은 컴퓨터가 저장하는 방식에 따른 형태인데, 데이터가 메모리에 저장되고자 할 때 2진수로 변환되어 저장되고 이것이 또다시 사용자의 가시성을 위해 10진수로 변환될 수 있기 때문이다.
예를 들어,
문자 A의 경우를 컴파일할 시 기계어(2진수)로 표기하고 이것을 표기하기 위해 10진수 아스키코드(ASCII)로 변환 시,
65로 변환된다.
또한 문자형 데이터 타입의 char형의 문자에 숫자를 더하면 또 다른 아스키코드가 연산된다.
문자 'A' 의 아스키 코드 값 65
(+32) // 아스키 코드는 순차적으로 구성되어있다, 문자의 대/소문자의 경우 32차이
// 숫자의 경우 48 차이가 있다
문자 'a' 의 아스키 코드 값 97
System.out.println('A' + 32 ); //97
위에서 말했던 것처럼 문자 'A'는 65로 표기되어 산술 연산에 의해 97 값이 출력이 된다.
'개발언어 > Java _ Spring' 카테고리의 다른 글
for문 (0) | 2022.08.03 |
---|---|
조건문 if (0) | 2022.08.02 |
Java기초_변수(variable) (0) | 2022.08.01 |
자바 기본입출력 / 출력 (0) | 2022.08.01 |
이클립스(Eclipse) 핵심 단축키 모음 (0) | 2022.08.01 |