혜야의 코딩스토리

변수 본문

꿈 : 멋진 개발자 🧸/자바의 정석

변수

hyeya_ 2022. 4. 28. 00:38

변수란? 하나의 값을 저장할 수 있는 저장공간

 

[변수의 타입]

분류 변수의 타입 설명
숫자 int 정수를 저장하기 위한 타입(20억이 넘을 땐 long)
long
float 실수를 저장하기 위한 타입
(float는 오차 없이 7자리, double15자리)
double
문자 char 문자를 저장하기 위한 타입
String 여러 문자를 저장하기 위한 타입

변수 : 하나의 값을 저장하기 위한 공간

상수 : 값을 한번만 저장할 수 있는 공간

리터럴 : 그 자체로 값을 의미하는 것 (변경x)

 

[리터럴의 타입과 접미사]

-논리형 : false, true // 접미사x

-정수형 : 123, 0b0101, 077(8진수), 0xFF(10진수), 100L // 접미사 L

-실수형 : 3.14, 3.0e8, 1.4f, 0x1.0p-1 // 접미사 f,d

-문자형 : ‘A’, ‘1’, ‘|n’ // 접미사 x

-문자열 : “ABC”, “123”, “A”, “true” // 접미사x

 

[문자열 결합]

문자열 + any type -> 문자열 + 문자열 -> 문자열

any type + 문자열 -> 문자열 + 문자열 -> 문자열

 

[두 변수의 값 바꾸기]

int tmp; // 임시로 값을 저장하기 위한 변수(빈 컵 역할)

 

[기본형의 종류와 범위]

  1byte 2byte 4byte 8byte
논리형 boolean      
문자형   char    
정수형 byte short int long
실수형     float double
  • boolean은 true와 false 두 가지 값만 표현할 수 있으면 되므로 가장 작은 크기인 1byte.
  • char은 자바에서 유니코드(2byte문자체계)를 사용하므로 2byte.
  • byte는 크기가 1byte라서 byte.
  • int(4byte)를 기준으로 짧아서 short(2byte), 길어서 long(8byte).
  • float는 실수 값을 부동소수점(floating-point)방식으로 저장하기 때문에 float.
  • double은 float보다 두 배의 크기(8byte)를 갖기 때문에 double.

 

[기본형 표현범위]

1byte=8bit

-n비트로 표현할 수 있는 값의 개수 : 2^n

-n비트로 표현할 수 있는 부호 없는 정수의 범위 : 0~2^n-1

-n비트로 표현할 수 있는 부호 있는 정수의 범위 : (-2^n-1) ~ (2^n-1) -1

 

[실수형float, double의 정밀도==오차 없는 자리 수]

float : 7자리 double : 15자리

 

[println()의 단점 : 출력형식 지정불가]

 

1.     실수의 자리 수 조절불가 –> 소수점 n자리만 출력하려면?

System.out.println(10.0/3); // 3.333333333333….

 

2.     10진수로만 출력된다. -> 8진수, 16진수로 출력하려면?

System.out.println(0x1A); // 26(10진수)

[printf( )로 출력형식 지정가능]

System.out.println( “%2.f” , 10.0/3 );  // 3.33

-> 지시자 %.f, 실수를 소수점 둘째자리까지 출력

 

System.out.println( “%d” , 0x1A );  // 26

-> 지시자 %d, 정수를 10진수로 출력

 

System.out.println( “%x” , 0x1A );  // 1A

-> 지시자 %x, 정수를 16진수로 출력

 

 

 

 

 

[prinf( )의 지시자]

 

%n : 줄바꿈 지시자

System.out.printf (“age : %d year : %d%n , 14, 2017);

// “age : 14 year : 2017%n”이 화면에 출력된다.

 

System.out.printf(“[%5d]%n”, 10);   // [□□□10]

-> 5자리 정수 출력 / 7자리 수를 넣으면 7자리 다 출력됨(참고하기)

System.out.printf(“[%-5d]%n”, 10); // [10□□□]

-> 5자리 정수 왼쪽 정렬하여 출력

System.out.printf(“[%05d]%n”, 10); // [00010]

-> 5자리 정수 빈칸엔 0대입하여 출력

 

 

double d = 1.23456789;

System.out.printf(“%14.10n”, d); // □□1.2345678900

-> 전체 14자리 중 소수점 아래 10자리 출력

 

System.out.printf("[%s]%n","www.codechobo.com");

-> 문자열 출력 // [www.codechobo.com]

System.out.printf("[%20s]%n","www.codechobo.com");

-> 문자열 출력 자리를 20으로 설정 후 출력 // [    www.codechobo.com]

System.out.printf("[%-20s]%n","www.codechobo.com");

-> 왼쪽 정렬 // [www.codechobob.com    ]

System.out.printf("[%.8s]","www.codechobo.com");

-> 앞에서부터 8자리만 출력 // [www.code]

 

[화면으로부터 입력받기]

1. import java.util.Scanner; // Scanner클래스를 사용하기 위해 import문 추가 (ctrl+shift+o)

2. Scanner scanner = new Scanner(System.in); // Scanner클래스의 객체를 생성

3.int num = scanner.nextInt( ); // 정수를 입력 받아서 변수num에 저장

 

 [정수형의 오버플로우]

오버플로우 : 연산과정에서 해당 타입이 표현할 수 있는 값의 범위를 넘어서는 것

최대값 + 1 -> 최소값

최소값 1 -> 최대값

 

  • n비트로 표현할 수 있는 값의 개수 : 2^n개
  • n비트로 표현할 수 있는 부호 없는 정수의 범위 : 0~2^n-1
  • n비트로 표현할 수 있는 부호 있는 정수의 범위 : (-2^n-1) ~ (2^n-1) -1

 

[타입 간의 변환방법]

  • 숫자를 문자로 변환 – 숫자에 ‘0’을 더한다.

(char)(3 + ‘0’) -> ‘3’

  • 문자를 숫자로 변환 – 문자에서 ‘0’을 뺀다.

‘3’ - ‘0’ -> 3

  • 숫자를 문자열로 변환 – 숫자에 빈 문자열(“”)을 더한다.

3+ “” -> “3”

  • 문자열을 숫자로 변환 – Integer.parseInt( ) 또는 Double.parseDouble( )을 사용한다.

Integer.parseInt(“3”) -> 3

Double.parseDouble(“3.14”) -> 3.14

  • 문자열을 문자로 변환 – charAt(0)을 사용한다.

“3”.charAt(0) -> ‘3’

  • 문자를 문자열로 변환 – 빈 문자열(“”)을 더한다.

‘3’ + “” -> “3”

'꿈 : 멋진 개발자 🧸 > 자바의 정석' 카테고리의 다른 글

객체지향 프로그래밍 I  (0) 2022.05.02
Method 메서드  (0) 2022.04.29
배열  (0) 2022.04.29
연산자  (0) 2022.04.28
조건문과 반복문 (=제어문)  (0) 2022.04.28