๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“— Book/์ž๋ฐ”์˜ ์ •์„

2-2์žฅ ๋ณ€์ˆ˜์˜ ํƒ€์ž…

by hyeon-z 2023. 3. 7.

๊ธฐ๋ณธํ˜•

์‹ค์ œ ๊ฐ’์„ ์ €์žฅ

- ๋…ผ๋ฆฌํ˜• (boolean)

- ๋ฌธ์žํ˜• (char)

- ์ •์ˆ˜ํ˜• (byte, short, int, long)

- ์‹ค์ˆ˜ํ˜• (float, double)

 

์ฐธ์กฐํ˜•

๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ

8๊ฐœ์˜ ๊ธฐ๋ณธํ˜•์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํƒ€์ž…

 

์ฐธ์กฐ ๋ณ€์ˆ˜์˜ ํƒ€์ž…: ํด๋ž˜์Šค ์ด๋ฆ„

์ฐธ์กฐ ๋ณ€์ˆ˜๋Š” null ํ˜น์€ ๊ฐ์ฒด ์ฃผ์†Œ๋ฅผ ๊ฐ’์œผ๋กœ ๊ฐ€์ง

Date today = new Date();

 

1. ๊ธฐ๋ณธํ˜•

  1. ๋…ผ๋ฆฌํ˜• (boolean): true์™€ false์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฐ’์œผ๋กœ ๊ฐ€์ง
  2. ๋ฌธ์žํ˜• (char): ํ•˜๋‚˜์˜ ๋ฌธ์ž๋งŒ ์ €์žฅ ๊ฐ€๋Šฅ
  3. ์ •์ˆ˜ํ˜• (byte, short, int, long)
  4. ์‹ค์ˆ˜ํ˜• (float, double)
  1byte (8bit) 2byte (16bit) 4byte (32bit) 8byte (64bit)
๋…ผ๋ฆฌ ํ˜• boolean      
๋ฌธ์ž ํ˜•   char    
์ •์ˆ˜ ํ˜• byte short int long
์‹ค์ˆ˜ ํ˜•     float double

๊ฐ’์˜ ๋ฒ”์œ„:  -2^n-1 ~ 2^n-1 -1 (n์€ bit์ˆ˜)

 

2. ์ƒ์ˆ˜์™€ ๋ฆฌํ„ฐ๋Ÿด

์ƒ์ˆ˜

- ํ•œ๋ฒˆ ๊ฐ’์„ ์ €์žฅํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค
- ์ƒ์ˆ˜์˜ ์ด๋ฆ„์€ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž, ์—ฌ๋Ÿฌ ๋‹จ์–ด์ธ ๊ฒฝ์šฐ '_'๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค

final int MAX_SPEED = 10;
๋ฆฌํ„ฐ๋Ÿด

์šฐ๋ฆฌ๊ฐ€ ๊ธฐ์กด์— ์•Œ๊ณ  ์žˆ๋˜ ‘์ƒ์ˆ˜’

→ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ƒ์ˆ˜๋ฅผ ‘๊ฐ’์„ ํ•œ๋ฒˆ ์ €์žฅํ•˜๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋Š” ๊ณต๊ฐ„’์œผ๋กœ ์ •์˜ํ•˜์—ฌ ์ด์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

int year = 2023;
final int MAX_VALUE = 100;

์œ„์˜ ์˜ˆ์‹œ์—์„œ year๋Š” ๋ณ€์ˆ˜, MAX_VALUE๋Š” ์ƒ์ˆ˜

2023๊ณผ 100์€ ๋ฆฌํ„ฐ๋Ÿด์ด๋‹ค.

 

๐Ÿ’ก์ •๋ฆฌ

๋ณ€์ˆ˜(variable): ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„
์ƒ์ˆ˜(constant): ๊ฐ’์„ ํ•œ๋ฒˆ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„
๋ฆฌํ„ฐ๋Ÿด(literal): ๊ทธ ์ž์ฒด๋กœ ๊ฐ’์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ

 

์ƒ์ˆ˜๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

 

int triangleArea = (20 * 10) / 2; // ์‚ผ๊ฐํ˜•์˜ ๋ฉด์ ์„ ๊ตฌํ•˜๋Š” ๊ณต์‹
int rectangleArea = 20 * 10; // ์‚ฌ๊ฐํ˜•์˜ ๋ฉด์ ์„ ๊ตฌํ•˜๋Š” ๊ณต์‹

 

์ƒ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์œ„์˜ ์ฝ”๋“œ ์ˆ˜์ •

 

final int WIDTH = 20;
final int HEIGHT = 10;

int triangleArea = (WIDTH * HEIGHT) / 2;
int rectangleArea = WIDTH * HEIGHT;

1. ๊ณต์‹์˜ ์˜๋ฏธ๊ฐ€ ๋ช…ํ™•ํ•˜๋‹ค

2. ์ƒ์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์ˆ˜์ •์„ ํŽธํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค

 

๋ฆฌํ„ฐ๋Ÿด์˜ ํƒ€์ž…๊ณผ ์ ‘๋ฏธ์‚ฌ

 

์ข…๋ฅ˜
๋ฆฌํ„ฐ๋Ÿด ์ ‘๋ฏธ์‚ฌ
๋…ผ๋ฆฌ ํ˜• false, true  
์ •์ˆ˜ ํ˜• 123, 123L L
์‹ค์ˆ˜ ํ˜• 3.14, 1.4f f, d
๋ฌธ์ž ํ˜• ‘A’, ‘1’  
๋ฌธ์ž์—ด “ABC”  

์ •์ˆ˜ํ˜•

์ ‘๋ฏธ์‚ฌ๊ฐ€ ์—†์œผ๋ฉด intํ˜•

์ ‘๋ฏธ์‚ฌ๊ฐ€ L์ด๋ฉด longํ˜•

 

2์ง„์ˆ˜, 8์ง„์ˆ˜, 16์ง„์ˆ˜๋Š” ์ ‘๋‘์‚ฌ๋ฅผ ๋ถ™์—ฌ ๊ตฌ๋ถ„

16์ง„์ˆ˜: 0x

8์ง„์ˆ˜: 0

2์ง„์ˆ˜: 0b

int hexNum = 0x10; // 16์ง„์ˆ˜ 10, 10์ง„์ˆ˜ 16 
int octNum = 010; // 8์ง„์ˆ˜ 10, 10์ง„์ˆ˜ 8
int binNum = 0b10; // 2์ง„์ˆ˜ 10, 10์ง„์ˆ˜ 2

 

* JDK1.7๋ถ€ํ„ฐ ์ •์ˆ˜ ํ˜• ๋ฆฌํ„ฐ๋Ÿด์˜ ์ค‘๊ฐ„์— _ ๊ตฌ๋ถ„์ž ๋„ฃ๊ธฐ ๊ฐ€๋Šฅ

 

์‹ค์ˆ˜ํ˜•

floatํ˜•์—๋Š” f / F

doubleํ˜•์—๋Š” d / D → ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์ด๋ฏ€๋กœ ์ƒ๋žต ๊ฐ€๋Šฅ

float pi = 3.14f;
double rate = 1.618d;

 

๋ฆฌํ„ฐ๋Ÿด์— ์†Œ์ˆ˜์ ์ด๋‚˜ 10์˜ ์ œ๊ณฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐํ˜ธ E / e, ๊ทธ๋ฆฌ๊ณ  ์ ‘๋ฏธ์‚ฌ f, F, d, D๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉด ์‹ค์ˆ˜ ํ˜• ๋ฆฌํ„ฐ๋„๋กœ ๊ฐ„์ฃผ๋œ๋‹ค.

์ž๋ฃŒํ˜•
์‹ค์ˆ˜ ํ˜• ๋ฆฌํ„ฐ๋Ÿด ๊ฐ™์€ ํ‘œํ˜„
float 3.14e3f 3140.0f
double 1e-3 0.001
double .10 0.10

 

ํƒ€์ž…์˜ ๋ถˆ์ผ์น˜

์ €์žฅ ๋ฒ”์œ„๊ฐ€ ๋„“์€ ํƒ€์ž…์— ์ข์€ ํƒ€์ž…์˜ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ํ—ˆ์šฉ

long i = 123; // int๋ณด๋‹ค longํƒ€์ž…์ด ๋” ๋ฒ”์œ„๊ฐ€ ๋„“๋‹ค
double d = 3.14f; // float๋ณด๋‹ค doubleํƒ€์ž…์ด ๋” ๋ฒ”์œ„๊ฐ€ ๋„“๋‹ค

⇒ ํ•˜์ง€๋งŒ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๊ฐ€ ๋˜๋ฉด ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ!

 

๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด๊ณผ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด

๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด: ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌธ์ž ํ•˜๋‚˜๋ฅผ ๊ฐ์‹ผ ๊ฒƒ

๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด: ํฐ ๋”ฐ์˜ดํ‘œ๋กœ ๋‘ ๋ฌธ์ž ์ด์ƒ์˜ ๋ฌธ์ž๋ฅผ ๊ฐ์‹ผ ๊ฒƒ

 

๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์€ ๋นˆ ๋ฌธ์ž์—ด์„ ํ—ˆ์šฉํ•˜์ง€๋งŒ ๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด์€ ๋ฐ˜๋“œ์‹œ ‘’ ์•ˆ์— ํ•˜๋‚˜์˜ ๋ฌธ์ž๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

String str = "";
char ch = ''; // Error

 

์›๋ž˜ String์€ ํด๋ž˜์Šค์ด๋ฏ€๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์—ฐ์‚ฐ์ž new๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์œ„์™€ ๊ฐ™์€ ํ‘œํ˜„๋„ ํ—ˆ์šฉํ•œ๋‹ค.

String name = new String("Java");

 

๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ๊ฒฐํ•ฉ

๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜• ๊ตฌ๋ถ„ ์—†์ด ์–ด๋–ค ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋„ ๋ฌธ์ž์—ด๊ณผ ๋ง์…ˆํ•˜๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋Š” ๋ฌธ์ž์—ด์ด ๋œ๋‹ค.

 

๋ฌธ์ž์—ด + any type → ๋ฌธ์ž์—ด + ๋ฌธ์ž์—ด → ๋ฌธ์ž์—ด

any type + ๋ฌธ์ž์—ด → ๋ฌธ์ž์—ด + ๋ฌธ์ž์—ด → ๋ฌธ์ž์—ด

7 + “” → “7”
true + “” → “true”
7 + 7 + “” → “77”

 

3. ํ˜•์‹ํ™”๋œ ์ถœ๋ ฅ - printf()

‘์ง€์‹œ์ž’๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ ๊ฐ€๋Šฅ

์ถœ๋ ฅ ํ›„ ์ค„๋ฐ”๊ฟˆ์„ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์›ํ•˜๋ฉด %n์„ ์‚ฌ์šฉ

์ง€์‹œ์ž ์„ค๋ช…
%b booleanํ˜•์‹
%d 10์ง„(decimal) ์ •์ˆ˜
%o 8์ง„(octal) ์ •์ˆ˜
%x, %X 16์ง„(hexa - decimal)์ •์ˆ˜
%f ๋ถ€๋™ ์†Œ์ˆ˜์ (floating-point)
%e, %E ์ง€์ˆ˜(exponent) ํ‘œํ˜„์‹
%c ๋ฌธ์ž(character)
%s ๋ฌธ์ž์—ด(string)

 

์ •์ˆ˜ํ˜•

10์ง„์ˆ˜

์ง€์‹œ์ž: %d

์ถœ๋ ฅ๋  ๊ฐ’์ด ์ฐจ์ง€ํ•  ๊ณต๊ฐ„์„ ์ˆซ์ž๋กœ ์ง€์ • ๊ฐ€๋Šฅ

System.out.printf("[%5d]%n", finger);   // [   10]
System.out.printf("[%-5d]%n", finger);  // [10   ]
System.out.printf("[%05d]%n", finger);  // [00010]

 

16์ง„์ˆ˜, 8์ง„์ˆ˜

์ง€์‹œ์ž %x , %o์— #๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ ‘๋‘์‚ฌ 0x0์ด ๋ถ™๋Š”๋‹ค

%X ๋Š” 16์ง„์ˆ˜์— ์‚ฌ์šฉ๋˜๋Š” ์ ‘๋‘์‚ฌ์™€ ์˜๋ฌธ์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ์ถœ๋ ฅ

System.out.printf("%x%n", hex);    // ffffffffffffffff
System.out.printf("%#x%n", hex);   // 0xffffffffffffffff
System.out.printf("%#X%n", hex);   // 0XFFFFFFFFFFFFFFFF

 

2์ง„์ˆ˜

10์ง„์ˆ˜๋ฅผ 2์ง„์ˆ˜๋กœ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ์ง€์‹œ์ž๋Š” ์—†๋‹ค

์ •์ˆ˜๋ฅผ 2์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” Integer.toBinaryString(int i) ์‚ฌ์šฉ

System.out.printf("%s%n", Integer.toBinaryString(binNum));

 

charํƒ€์ž…

%d ๋กœ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” int๋กœ ํ˜•๋ณ€ํ™˜ ํ›„ ์‚ฌ์šฉ

System.out.printf("c = %c, %d %n", c, (int)c);

 

์‹ค์ˆ˜ํ˜•

์ง€์‹œ์ž: %f, %e, %g

์ฃผ๋กœ %f๊ฐ€ ์“ฐ์ด๊ณ , ์ง€์ˆ˜ ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•  ๋•Œ %e, ๊ฐ’์„ ๊ฐ„๋žตํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ๋•Œ %g๋ฅผ ์‚ฌ์šฉ

%f๋Š” ์†Œ์ˆ˜์  ์•„๋ž˜ 6์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ, ์†Œ์ˆ˜์  ์•„๋ž˜ 7์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ

double d = 1.23456789;
System.out.printf("%f", d);  // 1.234568

 

์ „์ฒด ์ž๋ฆฌ ์ˆ˜์™€ ์†Œ์ˆ˜์  ์•„๋ž˜ ์ž๋ฆฌ ์ˆ˜ ์ง€์ • ๊ฐ€๋Šฅ %์ „์ฒด์ž๋ฆฌ.์†Œ์ˆ˜์  ์•„๋ž˜ ์ž๋ฆฌf

System.out.printf("%14.10f", d);  // ์ „์ฒด 14์ž๋ฆฌ ์ค‘ ์†Œ์ˆ˜์  ์•„๋ž˜ 10์ž๋ฆฌ

 

1 2 3 4 1 2 3 4 5 6 7 8 9 10
    1 . 2 3 4 5 6 7 8 9 0 0

์†Œ์ˆ˜์ ๋„ ํ•œ ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๋ฉฐ, ์†Œ์ˆ˜์  ์•„๋ž˜์˜ ๋นˆ์ž๋ฆฌ๋Š” 0์œผ๋กœ ์ฑ„์šฐ๊ณ  ์ •์ˆ˜์˜ ๋นˆ์ž๋ฆฌ๋Š” ๊ณต๋ฐฑ์œผ๋กœ ์ฑ„์šด๋‹ค.

 

๋ฌธ์ž์—ด

์ง€์‹œ์ž: %s

String url = "www.codechobo.com":

System.out.printf("[%s]%n", url);      // [www.codechobo.com]
System.out.printf("[%20s]%n", url);    // [   www.codechobo.com] ์šฐ์ธก์ •๋ ฌ
System.out.printf("[%-20s]%n", url);   // [www.codechobo.com   ] ์ฃ„์ธก์ •๋ ฌ
System.out.printf("[%.8s]%n", url);    // [www.code] ์™ผ์ชฝ์—์„œ 8๊ธ€์ž๋งŒ ์ถœ๋ ฅ

 

4. ํ™”๋ฉด์—์„œ ์ž…๋ ฅ ๋ฐ›๊ธฐ - Scanner

Scanner scanner = new Scanner(System.in);

Enter๋ˆ„๋ฅด๊ธฐ ์ „๊นŒ์ง€์˜ ๋‚ด์šฉ ์ž…๋ ฅ: scanner.nextLine()

intํ˜•์œผ๋กœ ์ž…๋ ฅ: scanner.nextInt()

floatํ˜•์œผ๋กœ ์ž…๋ ฅ: scanner.nextFloat()

 

 

Reference

์ž๋ฐ”์˜ ์ •์„ - ๋‚จ๊ถ ์„ฑ

 

'๐Ÿ“— Book > ์ž๋ฐ”์˜ ์ •์„' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

3-1์žฅ ์—ฐ์‚ฐ์ž  (1) 2023.03.14
2-5์žฅ ํ˜• ๋ณ€ํ™˜  (0) 2023.03.09
2-4์žฅ ๊ธฐ๋ณธํ˜•  (0) 2023.03.09
2-3์žฅ ์ง„๋ฒ•  (1) 2023.03.09
2-1์žฅ ๋ณ€์ˆ˜  (0) 2023.03.07

๋Œ“๊ธ€