예) int → byte 강제 타입 변환 byte의 범위 안에 있는 값까지만 변환 가능합니다.
◎ 연산식에서 자동 타입 변환
▷ 정수 타입 변수가 산술 연산식에서 피연산자로 사용되면 int 타입보다 작은 byte, short 타입 변수는 int 타입으로 자동 변환되어 연산을 수행합니다.
▷byte 변수가 피연산자로 사용되면 변수 값은 int 값으로 연산되며, 결과 역시 byte 변수가 아닌 int 변수에 저장해야 합니다.
int result = (byte 타입, char 타입, short 타입, int 타입) + 연산자 + (byte 타입, char 타입, short 타입, int 타입)
◎ String 타입 변환하기
▷ 기본 타입의 값을 문자열로 변경할 때는 String.valueOf()메소드를 이용합니다.
NO
변환 타입
사용 예
1
String → byte
byte value = Byte.parseByte(str);
2
String → short
short value = Short.parseShort(str);
3
String → int
int value = Integer.parseInt(str);
4
String → long
long value = Long.parseLong(str);
5
String → float
float value = Float.parseFloat(str);
6
String → double
double value = Double.parseDouble(str);
7
String → boolean
boolean value = Boolean.parseBoolean(str);
◎ 변수 범위를 나타내는 중괄호 {} 블록
▷ 조건문과 반복문의 중괄호 {} 블록 내에 선언된 변수는 해당 중괄호 {} 블록 내에서만 사용 가능합니다.
▷ 전역변수 :var1(main 내부에서 해당 변수를 다 사용할 수 있습니다.) ▷지역변수 : var2, var3 (if문, for문 내에서만 사용 가능합니다.)
◎ println() 메소드로 변수 값 출력하기
▷ 모니터에 값을 출력하기 위해 System.out.println() 이용
▷ 출력 방법에 따라 print(), printf()도 사용할 수 있습니다.
NO
메소드
의미
1
println(내용);
괄호 안의 내용을 출력하고 행을 바꿔라.
2
print(내용);
괄호 안의 내용을 출력하고 행은 바꾸지 마라.
3
printf("형식문자열", 값1, 값2, ...);
형식 문자열에 맞춰 뒤의 값을 출력하라.
▷printf()의 형식 문자열에서는 %와 conversation(변환 문자)를 필수로 작성하고 나머지는 생략 가능합니다.
public class printfExample {
public static void main(String[] args) {
int value = 123;
System.out.printf("상품의 가격 : %d원\n", value); // %d : 정수형
System.out.printf("상품의 가격 : %6d원\n", value); // %6d : 정수형 6자리 뒤에서부터 입력
System.out.printf("상품의 가격 : %-6d원\n", value); // %-6d : 정수형 6자리 앞에서부터 입력
System.out.printf("상품의 가격 : %06d원\n", value); // %06d : 빈칸은 0으로 채움
double area = 3.14159 * 10 * 10;
System.out.printf("반지름이 %d인 원의 넓이 : %10.2f\n", 10, area);
// %10.2f : 실수형 소숫점 2째 자리까지 출력하시오, 소숫점 포함 10자리를 출력하시오.
String name = "홍길동";
String job = "도적";
System.out.printf("%6d | %-10s | %10s\n", 1, name, job); // %s는 문자형 출력
}
}
// 출력
// 상품의 가격 : 123원
// 상품의 가격 : 123원
// 상품의 가격 : 123 원
// 상품의 가격 : 000123원
// 반지름이 10인 원의 넓이 : 314.16
// 1 | 홍길동 | 도적
◎ Scanner 타입 변수 활용하기
▷ class 바깥쪽에서 'import java.util.Scanner;'로 Scanner 함수를 가져옵니다.
Scanner sc = new Scanner(System.in);
sc는 다른 변수로 바꿔도 상관 없습니다.
◎ Scanner 활용 예시
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //Scanner 객체 생성
System.out.print("x 값 입력 : ");
String strX = scanner.nextLine();
int x = Integer.parseInt(strX);
System.out.print("y 값 입력 : ");
String strY = scanner.nextLine();
int y = Integer.parseInt(strY);
int result = x + y;
System.out.println("x + y: " + result);
System.out.println();
while(true) {
System.out.print("입력 문자열 : ");
String data = scanner.nextLine();
if(data.equals("q")) {
break;
}
System.out.println("출력 문자열: " + data);
System.out.println();
}
System.out.println("종료");
}
}
// 출력 :
// x 값 입력 : 5
// y 값 입력 : 11
// x + y: 16
// 입력 문자열 : e
// 출력 문자열: e
// 입력 문자열 : q
// 종료
strX, strY에 문자를 넣으면 x, y 값에 정수형으로 변환시켜서 넣을 수 없기 때문에 오류가 나타납니다.
아래의 while문은 q라는 문자가 입력될 때까지 while 내부의 코드를 반복해서 수행합니다.
변수를 자동 변환시켜보는 함수에 대해 알아봤습니다.
어떻게하면 변수의 형태를 변환 시킬 수 있는지에 대해서 조금은 더 이해가 되는 것 같네요!!