자바(JAVA)/미니 프로젝트 & 기초 공부

Java 기초 또 다시 공부하기 3일차 - 변수 타입 변환, 변수와 시스템 입출력

개발학생 2025. 5. 20. 19:07
반응형

1. 변수 타입 변환

  • 두 변수의 타입이 다를 때, 한쪽 변수값을 다른 쪽 변수에 복사해서 저장해야 할 경우 필요한 변환

1) 자동 타입 변환

  • 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때, 프로그램 실행 도중에 자동으로 타입 변환
    -> 타입별 허용 범위 크기: byte < short < int < long < float < double 
    => 예외로, char보다 허용 범위가 작은 byte는 자동 타입 변환되지 않음(char과 다르게 byte는 음수를 포함해서)

자동 타입 변환 과정

(1) 자동 타입 변환 예시 코드(자바 컴파일러 사이트https://www.mycompiler.io/ko/new/java에서 실행)

자동 타입 변환 예시 코드

(2) 정수 연산에서 자동 타입 변환

  • 정수 타입 변수가 산술 연산식(연산자: +, -, *, /, %)에서 피연산자로 사용되면
    int 타입보다 작은 byte/short 타입의 변수는 int 타입으로 자동 변환

정수 연산에서 자동 타입 변환 예시

(3) 실수 연산에서의 자동 타입 변환

  • 실수 타입 변수가 산술 연산식(연산자: +, -, *, /, %)에서 피연산자로 사용될 경우 
    두 연산자가 동일한 타입이면 해당 타입으로 연산되지만, 하나라도 double 타입이면 다른 피연산자도 double로 자동 변환

(4) + 연산에서의 문자열 자동 타입 변환

  • 숫자 + 숫자 -> 덧셈 연산, 숫자 반환
  • "문자열" + 숫자 -> 결합 연산, "문자열숫자" 문자열 반환
  • 숫자 + "문자열" -> 결합 연산, "숫자문자열" 문자열 반환

2) 강제 타입 변환

  • 큰 허용 범위 타입은 작은 허용 범위 타입으로 자동 타입 변환될 수 없으므로, 강제로 나눠서 저장해야 함

강제 타입 변환 과정

(1) 강제 타입 변환 예시 코드(자바 컴파일러 사이트https://www.mycompiler.io/ko/new/java에서 실행)

강제 타입 변환 예시 코드

(2) 문자열을 기본 타입으로 강제 타입 변환
-> 단, 문자열에 숫자가 아닌 것을 포함하고 있으면 NumberFormatException이 발생

기본 타입 변환 방법 예제 코드
int Integer.parseInt(String) int num = Integer.parseInt("123");
double Double.parseDouble(String) double d = Double.parseDouble("12.34");
float Float.parseFloat(String)  float f = Float.parseFloat("12.34f");
long Long.parseLong(String) long l = Long.parseLong("123456789");
short Short.parseShort(String) short s = Short.parseShort("123");
byte Byte.parseByte(String)  byte b = Byte.parseByte("12");
boolean Boolean.parseBoolean(String) boolean bool = Boolean.parseBoolean("true");

2. 변수와 시스템 입출력 

1) 시스템 입력

  • 시스템의 표준 입력 장치는 System.in.read();를 사용
    -> 입력 장치에서 입력된 키코드를 읽고 변수에 저장할 수도 있음 
    => 예시: int keyCode = System.in.read();
  • 키보드로 입력한 내용을 문자열로 읽으려면, Scanner를 사용
    -> 2개 이상의 키가 조합된 한글이나 숫자를 문자열로 읽을 수 있게 함
    -> 예시: Scanner sc = new Scanner(System.in); String data = sc.nextLine; int num = sc.next();

2) 시스템 출력 메서드의 종류(시스템의 표준 출력 장치인 모니터로 출력)

메서드 의미
System.out.println(출력내용); 괄호 안 내용을 출력하고 행 바꾸기
System.out.print(출력내용); 괄호 안 내용을 출력
System.out.printf("문자열 형식", 값1); 괄호 안의 문자열 형식대로 내용 출력

*printf 사용 방법

서식 의미 예제 코드  출력 예시
%d 정수 출력 System.out.printf("정수: %d", 123); 정수: 123
%f 실수 출력 (기본 소수점 6자리) System.out.printf("실수: %f", 12.3456); 실수: 12.345600
%.2f 실수 출력 (소수점 2자리) System.out.printf("실수: %.2f", 12.3456); 실수: 12.35
%s 문자열 출력 System.out.printf("문자열: %s", "Hello"); 문자열: Hello
%c 문자 출력 System.out.printf("문자: %c", 'A'); 문자: A
%b 불린(boolean) 값 출력 System.out.printf("논리값: %b", true); 논리값: true
%x 16진수 출력 System.out.printf("16진수: %x", 255); 16진수: ff
%o 8진수 출력 System.out.printf("8진수: %o", 255);  8진수: 377
%e 지수 표기법 출력 System.out.printf("지수 표기: %e", 12345.6789);  지수 표기: 1.234568e+04
%n 줄 바꿈 System.out.printf("줄바꿈%n다음 줄");  줄바꿈
다음 줄

 

반응형