Switch-Case๋ฌธ (Switch Statement)
๋ฑ์ฅ ๋ฐฐ๊ฒฝ
- ๋ฌธ์ ์ :
- ๋ค์ค if๋ฌธ: ์ฝ๋๊ฐ ์ง์ ๋ถํจ
- OR ์กฐ๊ฑด ๋ง๋ค ๋ ํํ์ด ๋ณต์กํจ
- ํด๊ฒฐ์ฑ : Switch๋ฌธ์ผ๋ก ์ฝ๋ ๊ฐ์
๊ธฐ๋ณธ ๋ฌธ๋ฒ
switch(๊ฒ์ฌ๊ฐ) {
case ๊ฐ1:
// ์คํ ์ฝ๋
break;
case ๊ฐ2:
// ์คํ ์ฝ๋
break;
default:
// ๊ธฐ๋ณธ ์คํ ์ฝ๋
}ํ์ ์ ํ์ฌํญ
- ์ฌ์ฉ ๊ฐ๋ฅ: ์ ์ํ(int, long ๋ฑ), String
- ์ฌ์ฉ ๋ถ๊ฐ: ์ค์ํ(double, float), ๋๋ถ๋ถ์ ์ฐธ์กฐ ํ์
- ์ค์ ๋ถ๊ฐ ์ด์ :
- ์ค์๋ ๊ทผ์ฟ๊ฐ์ผ๋ก ์ ์ฅ๋จ
- ์์ ์ผ์น ๋น๊ต ์ ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ์ฑ
- String ์์ธ:
- ์ด๊ธฐ์๋ ๋ถ๊ฐ๋ฅํ์ผ๋
- ์ฌ์ฉ ๋น๋๊ฐ ๋์ ํ์ ํ์ฉ๋จ
Break๋ฌธ์ ์ญํ
- Break ์์ ๋:
- Switch๋ฌธ์ ์ฆ์ ๋ฒ์ด๋จ
- ํด๋น case๋ง ์คํ
- Break ์์ ๋:
- ๋ค์ case๋ก ๊ณ์ ์งํ (Fall-through)
- ์ฌ๋ฌ case ์ฐ์ ์คํ ๊ฐ๋ฅ
์๊ฐ๋๋ณ ์์ ์์

- 8์ ์ถ๋ฐ: ์ถ๊ทผโํ์โ์ ๋ฌดโ์ธ๊ทผ (๋ชจ๋ ์คํ)
- 10์ ์ถ๋ฐ: ์ ๋ฌดโ์ธ๊ทผ (10์๋ถํฐ ์คํ)
- Break ์์ด ์์ ์์น๋ง ๋ค๋ฅด๊ฒ ์ค์
์คํ ๊ฒฐ๊ณผ

OR ์กฐ๊ฑด ํํ (์ ํต์ ๋ฐฉ๋ฒ)
case 8:
case 9:
// 8 ๋๋ 9์ผ ๋ ์คํ
break;- Break ์์ด case ์ฐ์ ๋์ด
- ๋์๋ฌธ์ ๊ตฌ๋ถ ์๋ ๋ฌธ์ ๊ฒ์ฌ ๋ฑ์ ํ์ฉ
- ๋จ์ : ํ์ดํ์ด ๋ง์
Java 12 ์ดํ ์๋ก์ด ๋ฌธ๋ฒ
switch(๊ฒ์ฌ๊ฐ) {
case 'A', 'a' -> {
// ์คํ ์ฝ๋
}
case 'B', 'b' -> {
// ์คํ ์ฝ๋
}
default -> {
// ๊ธฐ๋ณธ ์ฝ๋
}
}- ํน์ง:
- ์ฝค๋ง(
,)๋ก OR ์กฐ๊ฑด ํํ - ์ฝ๋ก (
:) ๋์ ํ์ดํ(->) ์ฌ์ฉ - Lambda ํจ์ ํํ์
- Break ๋ถํ์ (์๋ return)
- ์ค๊ดํธ ์๋ต ๊ฐ๋ฅ (ํ ์ค์ผ ๊ฒฝ์ฐ)
- ์ฝค๋ง(
- ์ฅ์ : ์๊ฐ์ ์ผ๋ก ๊น๋, ๊ฐ๊ฒฐํ ํํ
์์

์คํ๊ฒฐ๊ณผ

Default๋ฌธ
- ๋ค์ค if๋ฌธ์ ๋ง์ง๋ง else์ ๋์ผํ ์ญํ
- ๋ชจ๋ case์ ํด๋นํ์ง ์์ ๋ ์คํ
- ์ ํ์ฌํญ (์ต์ )
์ค์ฒฉ ๋ฃจํ๋ฌธ (Nested Loop)
์ค์ฒฉ ๋ฃจํ์ ์์น
- ๋ฐ๊นฅ ๋ฃจํ: ๊ณ ์ฐจ์(๋์ ์ฐจ์)์ ๋ฐ๋ณต
- ์์ชฝ ๋ฃจํ: ์ ์ฐจ์(๋ฎ์ ์ฐจ์)์ ๋ฐ๋ณต
- ์์น: ๋ฐ๊นฅ์ชฝ์ผ๋ก ๊ฐ์๋ก ๋์ ์ฐจ์, ์์ชฝ์ผ๋ก ๊ฐ์๋ก ๋ฎ์ ์ฐจ์
2์ฐจ์ ํ ์ด๋ธ ์ํ ์์
// ํ(row)๊ณผ ์ด(column)์ ๊ฐ์ง ํ
์ด๋ธ
for (ํ์ ๋ํ ๋ฃจํ) { // ๋ฐ๊นฅ ๋ฃจํ = ๊ณ ์ฐจ์ = ํ
for (์ด์ ๋ํ ๋ฃจํ) { // ์์ชฝ ๋ฃจํ = ์ ์ฐจ์ = ์ด
// ์ฒ๋ฆฌ
}
}
๊ฒฐ๊ณผ

3์ฐจ์ ๋ฐฐ์ด ์ํ ๊ตฌ์กฐ
- ์ต์ธ๊ณฝ ๋ฃจํ: Z ์ฐจ์
- ์ค๊ฐ ๋ฃจํ: ํ(row)
- ์ต๋ด๊ฐ ๋ฃจํ: ์ด(column)
while๋ฌธ๊ณผ ๋ฐ๋ณต ์ ์ด
while๋ฌธ ํน์ง
- ์กฐ๊ฑด์์ด ์ฐธ(true)์ธ ๊ฒฝ์ฐ์๋ง ์คํ
- false๊ฐ ๋๋ฉด ๋ฃจํ ํ์ถ
- ํ์ ์กฐ๊ฑด: ๋ฃจํ ๋ด์์ ์กฐ๊ฑด์์ ๋ณ์๋ฅผ ๋ฐ๋์ ์์ ํด์ผ ํจ
- ์์ ํ์ง ์์ผ๋ฉด โ ๋ฌดํ ๋ฃจํ ๋ฐ์
while๋ฌธ vs for๋ฌธ
- for๋ฌธ: ํ์ ๊ธฐ๋ฐ ๋ฐ๋ณต์ ์ ํฉ
- while๋ฌธ: ํจํด ์์ด ๋ณํ๋ ๊ฐ, ์ ๋ ฅ๊ฐ์ ๋ฐ๋ฅธ ์ข ๋ฃ ์ฒ๋ฆฌ์ ์ ํฉ
while๋ฌธ ํ์ฉ ์์
boolean run = true;
while(run) {
// ๋ฉ๋ด ์ ์
// 1. ์ฆ์, 2. ๊ฐ์, 3. ์ ์ง
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
if(input.equals("3")) {
run = false; // ๋ค์ ๋ฃจํ์์ ์ข
๋ฃ
}
}๋ฉ๋ด ํ์ฅ ์ ๋ฌธ์ ์
- ๋ฉ๋ด ์ถ๊ฐ ์ if-else ๋ฌธ์ด ๊ณ์ ์ฆ๊ฐ
- ๋ฒํธ ์กฐ์ ํ์
- ์ ์ง๋ณด์ ๊ด์ ์์ ์ข์ง ์์ ๊ตฌ์กฐ
- ํด๊ฒฐ์ฑ : ๊ฐ์ฒด ์งํฅ ๊ธฐ๋ฒ ํ์ฉ (์ถํ ํ์ต)
do-while๋ฌธ
๊ตฌ์กฐ์ ํน์ง
do {
// ์คํ๋ฌธ (์ต์ 1๋ฒ์ ์คํ ๋ณด์ฅ)
} while(์กฐ๊ฑด์);- ์กฐ๊ฑด์์ด ๋ค์ ์์น
- ์ต์ 1๋ฒ ์คํ ๋ณด์ฅ (while๋ฌธ๊ณผ์ ์ฃผ์ ์ฐจ์ด์ )
- while๋ฌธ: ์ฒ์๋ถํฐ ๊ฑฐ์ง์ด๋ฉด ์คํ ์ ๋ ์ ์์
- do-while๋ฌธ: ๊ฒ์ฌ๋ฅผ ๋งจ ๋ค์ ํ๋ฏ๋ก ์ ์ด๋ ํ ๋ฒ์ ์คํ
์ฌ์ฉ ๋น๋
- JavaScript์์๋ ์กด์ฌํ์ง๋ง ์ฌ์ฉ ๋น๋๊ฐ ๋งค์ฐ ๋ฎ์
- Java์์๋ ์๋์ ์ผ๋ก ์ฌ์ฉ ๋น๋ ๋ฎ์
์ฐธ์กฐ ํ์ ๊ณผ ๋น๊ต ์ฐ์ฐ
์ฐธ์กฐ ํ์ ์ ๋น๊ต ์ฐ์ฐ (==)
- Primitive ํ์ : ์ค์ ๊ฐ์ ๋น๊ต
- ์ฐธ์กฐ ํ์
: ์ฐธ์กฐ๊ฐ(Reference Value)์ ๋น๊ต
- ๋ณ์ ์์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฐธ์กฐ๊ฐ์ผ๋ก ๋น๊ต
- ์ค์ ๋ด์ฉ์ด ๊ฐ์๋ ์ฐธ์กฐ๊ฐ ๋ค๋ฅด๋ฉด false
์์
// ๋ ๊ฐ์ ๋ฐฐ์ด ๊ฐ์ฒด๊ฐ ํ์ ์์ฑ
int[] array1 = new int[]{1, 2, 3};
int[] array2 = new int[]{1, 2, 3};
int[] array3 = array2;
array1 == array2 // false (์ฐธ์กฐ๊ฐ์ด ๋ค๋ฆ)
array2 == array3 // true (๊ฐ์ ๊ณณ์ ์ฐธ์กฐ)์ค์ ๋ด์ฉ ๋น๊ต ํ์์ฑ
- ์ฐธ์กฐ๊ฐ ๋น๊ต๋ ํ์ํ์ง๋ง, ์ค์ ๋ด์ฉ ๋น๊ต๊ฐ ๋ ์ผ๋ฐ์
- ๋ฐฐ์ด, ๋ฌธ์์ด, ๊ฐ์ฒด ๋ฑ ๋ชจ๋ ์ฐธ์กฐ ํ์ ์ ๋์ผํ๊ฒ ์ ์ฉ
null์ ๊ฐ๋ ๊ณผ ํ์ฉ
null์ ์ ์
- ์ค์ฒด: ์ซ์ 0
- ์๋ฏธ: ์๋ฌด๊ฒ๋ ์ฐธ์กฐํ์ง ์์
- ๋ชจ๋ ์ฐธ์กฐ ํ์ ์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ
- ์ฐ๊ฒฐ๋ ์ค์ ๊ฐ์ฒด๊ฐ ์์์ ์๋ฏธ
null์ ์ฃผ์ ์ฉ๋
- ์ฐธ์กฐ ํ์
์ด๊ธฐํ
- ์ง์ญ ๋ณ์๋ ์ด๊ธฐํ๋์ง ์์ (์ฐ๋ ๊ธฐ ๊ฐ ์กด์ฌ)
- ์์ ํ ์ฌ์ฉ์ ์ํด null๋ก ์ด๊ธฐํ ํ์
- Heap์์ ์์ฑ๋๋ ๊ฒฝ์ฐ: ์๋์ผ๋ก 0(null)์ผ๋ก ์ด๊ธฐํ
- ๋ฉ๋ชจ๋ฆฌ ๋ฐ๋ฉ
- ์ฐธ์กฐ๋ฅผ null๋ก ์ค์ ํ๋ฉด ๊ฐ์ฒด๊ฐ ๊ฐ๋น์ง(Garbage)๊ฐ ๋จ
- Garbage Collector์ ์ํด ์๋ ๋ฐ๋ฉ
null ์ฌ์ฉ ๊ฐ๋ฅํ ์ฐ์ฐ
- ์ ์ผํ ์ฐ์ฐ: ๊ฐ๋/๋ค๋ฅด๋ (== / !=)
- null์ ๋ํ ์ ๊ทผ ์๋ โ NullPointerException ๋ฐ์
์์ ํ null ์ฒ๋ฆฌ
if(๋ณ์ != null) {
// null์ด ์๋ ๋๋ง ์ฒ๋ฆฌ
}๋ฉ๋ชจ๋ฆฌ ์์ญ๊ณผ ์ด๊ธฐํ
Heap ์์ญ
- ์ด๊ธฐํ: 0์ผ๋ก ์๋ ์ด๊ธฐํ
- ์์ฑ ํค์๋: new
- ์ฌ์ฉ ๋น๋๊ฐ ์๋์ ์ผ๋ก ๋ฎ์
- ์๊ฐ์ ํฌ์ํด์ ์ด๊ธฐํ
Stack ์์ญ
- ์ด๊ธฐํ ์์: ์ด์ ๋ฐ์ดํฐ๊ฐ ๊ทธ๋๋ก ๋จ์์์ (์ฐ๋ ๊ธฐ ๊ฐ)
- ์ด์ : ํจ์ ํธ์ถ์ด ๋น๋ฒํ๊ณ ์๋๊ฐ ์ค์ํ๋ฏ๋ก ์ด๊ธฐํ ์๊ฐ ์ ์ฝ
- ํจ์ ํธ์ถ ์ ์ฌ์ฉ๋๋ ์์ญ
- ๋น ๋ฅธ ์ด์ ํ์
์ด๊ธฐํ ๊ฐ์ ์๋ฏธ
- ๊ธฐ๋ณธ ํ์ : 0์ผ๋ก ์ด๊ธฐํ
- boolean: false๋ก ํด์
- ์ฐธ์กฐ ํ์ : null (0์ ์ฐธ์กฐ ํ์ ์์ null์ ์๋ฏธ)
๊ฐ๋น์ง ์ปฌ๋ ์ (Garbage Collection)
๊ฐ๋น์ง ์์ฑ ๋ฐฉ๋ฒ
- null ๋ฐฐ์
array = null; // ๊ธฐ์กด ์ฐธ์กฐ ์ ๊ฑฐ- ๋ค๋ฅธ ๊ฐ์ฒด ์ฐธ์กฐ
array = new int[5]; // ๊ธฐ์กด ์ฐธ์กฐ ์์ด๋ฒ๋ฆผ
๊ฐ๋น์ง ์ปฌ๋ ์ ์ ํ๊ธฐ์ ๋ฉ์ปค๋์ฆ
- ์ด์ (C/C++): malloc/free, new/delete๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ด๋ฆฌ
- ๋ฉ๋ชจ๋ฆฌ ๋์(Memory Leak) ๋ฌธ์ ๋น๋ฒ
- Java: Garbage Collector๊ฐ ์๋ ๊ด๋ฆฌ
- ๋ฉ๋ชจ๋ฆฌ ๋ฐ๋ฉ์ ๋ํ ์ ๊ฒฝ ๋ถํ์
- ์ดํ ๋๋ถ๋ถ์ ์ธ์ด๊ฐ ์ฑํ
๊ฐ๋น์ง ์ปฌ๋ ์ ์คํ ์์
- ์ฆ์ ์ฌ๋ผ์ง์ง ์์
- JVM์ ์ํด Garbage Collector๊ฐ ์ค์ผ์ค๋ง๋จ
- ์ค์บ ํ ๋ฐ๊ฒฌ๋๋ฉด ๊ทธ๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ๋ฉ
- ๊ฐ๋ฐ์๋ ์ ๊ฒฝ ์ธ ํ์ ์์
๋ฌธ์์ด (String)
๋ฌธ์์ด์ ํน์ง
- ๋ถ๋ณ ๊ฐ์ฒด (Immutable Object)
- ํ ๋ฒ ์์ฑ๋๋ฉด ๋ฐ์ดํฐ ์์ ๋ถ๊ฐ
- ๋ถ๋ณ ๊ฐ์ฒด๋ก ์ด์ํ๋ ์ธ์ด: Java, JavaScript, Python
- ๋ณ๊ฒฝ ํ์ฉ ์ธ์ด: C, C++ (์๋ณธ ์์ ๊ฐ๋ฅ)
๋ฌธ์์ด ์์ฑ ๋ฐฉ๋ฒ
๋ฆฌํฐ๋ด ๋ฐฉ์ (๋์ )
String name1 = "ํ๊ธธ๋";
String name2 = "ํ๊ธธ๋";
// ๊ฐ์ ๋ฆฌํฐ๋ด์ ํ ๋ฒ๋ง ์์ฑ๋์ด ๊ณต์ ๋จ
// name1 == name2 โ true (๊ฐ์ ์ฐธ์กฐ)- ๋ฆฌํฐ๋ด์ ์์ ์ฒ๋ฆฌ
- ๋์ผํ ๋ฆฌํฐ๋ด์ ์ฌ์ฌ์ฉ (ํ ๋ฒ๋ง ์์ฑ)
- ํธ๋ฆฌํ์ง๋ง ์ฐธ์กฐ๊ฐ ๋์ผํจ
new ํค์๋ ๋ฐฉ์ (๋ช ์์ ๊ฐ์ฒด ์์ฑ)
String name3 = new String("ํ๊ธธ๋");
// ๋ณ๋์ ๊ฐ์ฒด ์์ฑ
// name1 == name3 โ false (๋ค๋ฅธ ์ฐธ์กฐ)- ๋ช ์์ ์ผ๋ก ๊ฐ์ฒด ์์ฑ
- ์๋ก ๋ค๋ฅธ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง
๋ฌธ์์ด ๋น๊ต
// ์ฐธ์กฐ๊ฐ ๋น๊ต
name1 == name2 // ๋ฆฌํฐ๋ด: true
name1 == name3 // ๋ค๋ฅธ ๊ฐ์ฒด: false
// ์ค์ ๋ด์ฉ ๋น๊ต
name1.equals(name3) // true (๋ด์ฉ์ด ๊ฐ์)
๊ฒฐ๊ณผ

์ฃผ์ ๋ฌธ์์ด ๋ฉ์๋
charAt() - ๋ฌธ์ ์ถ์ถ
char c = str.charAt(0); // 0๋ฒ์งธ ๊ธ์ ์ถ์ถ
// Java๋ ๋ฐฐ์ด์ ์ ๊ทผ(str[0]) ๋ถ๊ฐ
// ์ด์ : ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ ๋ฏธ์ง์length() - ๋ฌธ์์ด ๊ธธ์ด
int len = str.length();
// ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ์๋ฆฟ์ ํ์ธ ๋ฑ์ ํ์ฉreplace() - ๋ฌธ์์ด ๋์ฒด
String result = str.replace("Java", "java");
// ๋ถ๋ณ ๊ฐ์ฒด: ์๋ณธ ๋ณ๊ฒฝ ๋ถ๊ฐ
// ์๋ก์ด ๋ฌธ์์ด ์์ฑํ์ฌ ๋ฆฌํดsubstring() - ๋ฌธ์์ด ์ถ์ถ
String sub1 = str.substring(์์์ธ๋ฑ์ค); // ์์~๋๊น์ง
String sub2 = str.substring(์์์ธ๋ฑ์ค, ๋์ธ๋ฑ์ค); // ๋์ธ๋ฑ์ค๋ ๋ฏธํฌํจ
// ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ ์ 6์๋ฆฌ
String front = ssn.substring(0, 6); // 0~5๊น์ง- ๋์ธ๋ฑ์ค๋ ๋ฏธํฌํจ (ํท๊ฐ๋ฆฌ๊ธฐ ์ฌ์ด ๋ถ๋ถ)
๋ฐฐ์ด (Array)
๋ฐฐ์ด์ ๊ธฐ๋ณธ ํน์ง
- ์ฐธ์กฐ ํ์
- ํฌ๊ธฐ ๊ณ ์ : ํ ๋ฒ ์์ฑ๋๋ฉด ํฌ๊ธฐ ๋ณ๊ฒฝ ๋ถ๊ฐ
- ๋์ผ ํ์ : ๊ฐ์ ํ์ ์ ๋ฐ์ดํฐ๋ง ์ ์ฅ
๋ฐฐ์ด ์ ์ธ ๋ฐฉ๋ฒ
๊ถ์ฅ ๋ฐฉ์
int[] array; // ํ์
[] ๋ณ์๋ช
double[] scores; // ์ฐธ์กฐ ํ์
์์ ๋ช
ํํ ํํ๊ฐ๋ฅํ์ง๋ง ๋น๊ถ์ฅ
int array[]; // C ์คํ์ผ- ์ฒซ ๋ฒ์งธ ๋ฐฉ์ ์ ํธ ์ด์ : "Integer ๋ฐฐ์ด์ ๋ํ ์ฐธ์กฐ ๋ณ์"์์ด ๋ช ํ
๋ฐฐ์ด ์์ฑ๊ณผ ์ด๊ธฐํ
์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ (new ์๋ต ๊ฐ๋ฅ)
int[] array = {1, 2, 3};
// ์ ์ธ๋ฌธ์์๋ง ์ค๊ดํธ๋ง์ผ๋ก ์ด๊ธฐํ ๊ฐ๋ฅ์ ์ธ๊ณผ ํ ๋น ๋ถ๋ฆฌ
int[] array; // ์ ์ธ
array = new int[]{1, 2, 3}; // new ํ์
// array = {1, 2, 3}; // ์๋ฌ! (์ฝ๋ ๋ธ๋ก์ผ๋ก ํด์)ํฌ๊ธฐ๋ง ์ง์
int[] array = new int[30];
// 0์ผ๋ก ์ด๊ธฐํ๋จ (ํ์ ์์ฑ๋๋ฏ๋ก)๋ฉ์๋ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ
// ์๋ชป๋ ๋ฐฉ๋ฒ
printItem({1, 2, 3}); // ์๋ฌ!
// ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ
printItem(new int[]{1, 2, 3}); // new ํ์๋ฐฐ์ด์ length
int len = array.length; // ๊ดํธ ์์ (๋ฉ์๋๊ฐ ์๋ ํ๋/์์)- ๋ฉ์๋๊ฐ ์๋ ์์ (final ๋ณ์)
- ๋ฐฐ์ด ์์ฑ ์ ์๋์ผ๋ก ์ด๊ธฐํ
- ์ฝ๊ธฐ ์ ์ฉ (Read-only): ๊ฐ ๋ณ๊ฒฝ ๋ถ๊ฐ
- for๋ฌธ ์ข ๋ฃ ์กฐ๊ฑด์ผ๋ก ์์ฃผ ์ฌ์ฉ
๋ฐฐ์ด ์ํ
for(int i = 0; i < array.length; i++) {
// array[i] ์ฒ๋ฆฌ
}๋ค์ฐจ์ ๋ฐฐ์ด
Java ๋ค์ฐจ์ ๋ฐฐ์ด์ ํน์ง
- ๊ณ ์ฐจ์ ๋ฐฐ์ด = ์ ์ฐจ์ ๋ฐฐ์ด์ ๋ํ ์ฐธ์กฐ๋ณ์์ ๋ฐฐ์ด
- ๊ฐ ์ฐจ์์ ๋ฐฐ์ด ๊ธธ์ด๊ฐ ๋ค๋ฅผ ์ ์์ (C/C++์์ ์ฐจ์ด์ )
- ํ์ ์ ๋์ผํ์ง๋ง ๊ธธ์ด๋ ์ ๊ฐ๊ฐ ๊ฐ๋ฅ

๊ฒฐ๊ณผ

2์ฐจ์ ๋ฐฐ์ด ์ ์ธ๊ณผ ์ด๊ธฐํ
๋์ ์ด๊ธฐํ
int[][] scores = {
{1, 2, 3}, // ์ฒซ ๋ฒ์งธ ๋ฐฐ์ด (๊ธธ์ด 3)
{4, 5} // ๋ ๋ฒ์งธ ๋ฐฐ์ด (๊ธธ์ด 2)
};๊ธธ์ด๋ง ์ง์ (๋ชจ๋ ์ฐจ์)
int[][] scores = new int[2][3];
// 2๊ฐ์ ๋ฐฐ์ด, ๊ฐ๊ฐ 3๊ฐ์ ์์
// ๋ชจ๋ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ๋์ผ๊ณ ์ฐจ์๋ง ์ง์ (๋จ๊ณ๋ณ ์์ฑ)
// 1๋จ๊ณ: ๊ณ ์ฐจ์ ๋ฐฐ์ด๋ง ์์ฑ
int[][] scores = new int[2][];
// scores[0] = null, scores[1] = null
// 2๋จ๊ณ: ๊ฐ ๋ฐฐ์ด์ ๊ฐ๋ณ ์์ฑ (๊ธธ์ด๊ฐ ๋ฌ๋ผ์ง ์ ์์)
scores[0] = new int[3]; // ๊ธธ์ด 3
scores[1] = new int[2]; // ๊ธธ์ด 2๋ค์ฐจ์ ๋ฐฐ์ด ์ ๊ทผ
๊ฐ๋ณ ๋ฐฐ์ด ๊ธธ์ด ํ์ธ
scores.length // ๊ณ ์ฐจ์ ๋ฐฐ์ด์ ๊ธธ์ด (2)
scores[0].length // ์ฒซ ๋ฒ์งธ ๋ฐฐ์ด์ ๊ธธ์ด (3)
scores[1].length // ๋ ๋ฒ์งธ ๋ฐฐ์ด์ ๊ธธ์ด (2)์ด์ค ๋ฃจํ๋ก ์ํ
for(int i = 0; i < scores.length; i++) { // ๋ฐ๊นฅ ๋ฃจํ
for(int j = 0; j < scores[i].length; j++) { // ์์ชฝ ๋ฃจํ (๊ธธ์ด๊ฐ ๋ค๋ฅผ ์ ์์)
// scores[i][j] ์ฒ๋ฆฌ
}
}- ์ฃผ์: ํ๋์ฝ๋ฉํ๋ฉด ์ ๋จ (๊ฐ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก)
- ๋ฐ๋์
scores[i].length์ฌ์ฉ
์ฐจ์๋ณ ์ธ๋ฑ์ค ์๋ฏธ
- ์์ชฝ ์ธ๋ฑ์ค: ๊ณ ์ฐจ์
- ๋ค์ชฝ ์ธ๋ฑ์ค: ์ ์ฐจ์
- ์:
scores[i][j]- i: ํ (๊ณ ์ฐจ์)
- j: ์ด (์ ์ฐจ์)
Java ๊ธฐ๋ณธ ์๋ฃํ
์๋ฃํ์ ๋ถ๋ฅ
- ๊ธฐ๋ณธ ์๋ฃํ(Primitive Type): 8๊ฐ์ง
- ์ฐธ์กฐ ์๋ฃํ(Reference Type): ๊ธฐ๋ณธํ ์ด์ธ ๋ชจ๋ ๊ฒ
๋จ์ผ ๋ฌธ์ํ
- char: 2 bytes
- 2๋ฐ์ดํธ ์ฒด๊ณ ์ ๋์ฝ๋ ์ฌ์ฉ
- ํ ๊ธ์ ํํ
๋ ผ๋ฆฌํ
- boolean: 1 byte
- ๊ฐ: true ๋๋ false๋ง ๊ฐ๋ฅ
- ํ๋ณํ ๋ถ๊ฐ: ๋ค๋ฅธ ์๋ฃํ๊ณผ ์ ๋ ๋ณํ ์ ๋จ
- JavaScript์ ๋ฌ๋ฆฌ 0์ false๋ก ์ธ์ ์ ํจ
- ์ค์ง true/false(์๋ฌธ์)๋ง ํ์ฉ
ํ๋ณํ ๊ท์น
- ์๋ ํ๋ณํ: ์์ ํ์
โ ํฐ ํ์
- ์: byte โ short โ int โ long โ float โ double
- ๊ฐ์ ํ๋ณํ: ํฐ ํ์ โ ์์ ํ์ (๋ฐ์ดํฐ ์์ค ๊ฐ๋ฅ)
- ์์ธ: boolean์ ์ด๋ค ํ์ ๊ณผ๋ ํ๋ณํ ๋ถ๊ฐ