μ΄ κΈμ Newlectureμ Java Programming κ°μλ₯Ό 보며 μ 리ν κΈμ λλ€.
π€ C/C++ μΈμ΄κ° κ°μ§λ λ¬Έμ μ λ€ β JAVAλ‘ λ³ν π€
β κ°μ²΄ μμ±κ³Ό μ κ±° β delete ν€μλ μ κ±°
β‘ μ°Έμ‘°λ³μμ ν¬μΈν° λ³μ β κ°μ²΄μ ν¬μΈν° μ κ±°
β’ μ΄μ°¨ μ΄μμ ν¬μΈν° λ¬Έμ β λͺ¨λ ν¬μΈν° μ κ±°
β£ λ°μ΄ν° ꡬ쑰λ₯Ό μ μνλ λ κ°μ§ λ°©λ² β struct ν€μλ μ κ±°
β€ ν¨μμ§ν₯? κ°μ²΄μ§ν₯? β ν¨μλ λ©μλλ‘λ§ μ¬μ©νλλ‘ μ μ½ (μμ ν κ°μ²΄ μ§ν₯)
β₯ 컬λ μ
μ λΆμ¬ β μΈμ΄μ 컬λ μ
μ βν¬ν¨β
β¦ κΈλ‘λ²ν λ¬Έμ λ°μ΄ν°μ²λ¦¬μ 볡μ‘μ± β λ€μν μΈμ½λ© λ¬Έμμ΄ κΈ°λ₯ κ°μ
β§ ... β ...μ κ±°
π€ C/C++μΈμ΄μ λΉκ΅νμλ μλ°μΈμ΄μ νΉμ§ π€
: β κ°κ²°μ±
β‘ μΈμ΄μ 컬λ μ
ν¬ν¨
β’ μμ ν κ°μ²΄μ§ν₯ μΈμ΄
π€ μλ° νλ«νΌμ νΉμ§ π€
WORA - μλ° μ½λλ₯Ό μμ±νλ©΄ λͺ¨λ κ³³(μ΄λ ν νκ²½μμλ)μμ μ€νλ μ μλ νλ‘κ·Έλ¨μ λ§λ€κΈ° μν΄μ λ§λ€μ΄μ§
π€ μλ° λ²μκΈ° (complier)μ νΉμ§ π€
β ννμλΆμ β ①ꡬ문λΆμ β β’ μλ―ΈλΆμ β β£ μ€κ°μ½λ β β€ μ΅μ ν β β₯ 물리μ½λ
β ~ β£ κΉμ§λ 'μ»΄νμΌλ¬' μ¬μ© β μ΄νλΆν°λ 'μΈν°ν리ν°'(μ¬μ©μκ° μ¬μ©νλ λ²μκΈ°) μ¬μ©
μλ°μ½λ β [λ²μκΈ° : μ»΄νμΌλ¬] β λ°μ΄νΈμ½λ(μ€κ°μ½λ) β [λ²μκΈ° : μΈν°ν리ν°] β μ΄μ
λΈμ½λ β [λ²μκΈ°] β κΈ°κ³(μ΄μ§)μ½λ
Complier / Debuger JIT Complier / Garbage Collector / Loader / Security
(Java Development Kit) β β (Java Runtime Environment)
JDK JRE
β JDKλ₯Ό λ€μ΄λ°μΌλ©΄ κ·Έ μμ JREκ° ν¬ν¨λμ΄ μλ€.
π€ κ°μ μ’ λ₯μ ννλ°©λ² π€
μ μκ° : xx
μ€μκ° : xx.x
λ¬Έμκ° : 'A'
μ§λ¦¬κ° : true / false
π€ κ°μ νμλͺ μΉκ³Ό λ³ν π€
μ μνμκ³Ό λ³ν : byte / short / int / long
μ€μνμ : float / double
λ¬Έμνμ : char
λΆμΈνμ : boolean
π€ λ³μ μ μΈ π€
μ μΈμ΄λ?
β λͺ¨λ ν€μλλ μ μΈνκ³ μ¬μ©ν΄μΌλ§ νλ€.
λ³μ int kor;
ν¨μ οΌ κΈ°νΈ (kor) μ μΈ οΌ void add(int x, int y);
μ°Έμ‘°λ³μ Animal μμ¬μ΄;
...
...
λ³μλ?
β κ°μ μ μ₯νκΈ° μν 곡κ°
int kor = 3;
λ³μλ₯Ό μ μΈνλ λ°©λ²
λ³μ λͺ
λͺ
κ·μΉ
β μμ μ«μκ° μ¬ μ μλ€
①곡백 μ¬μ© β
β’ νΉμλ¬Έμ μ¬μ© β
μ¬λ¬ λ³μλ₯Ό ν λ²μ μ μΈνκΈ°
int kor1;
int kor2; β int kor1, kor2, kor3;
int kor3;
π€ μΆλ ₯ μ€νΈλ¦Ό κ°μ²΄μ API π€
μΆλ ₯ μ€νΈλ¦Ό(Output Stream)μ μ΄μ©ν λΉλκΈ° μ²λ¦¬
Stream : λ¨λ°©ν₯
μΆλ ₯λ²νΌ(Output Stream)μ ν΅ν΄μ μ€ννκ²½ β μ»΄ν¨ν°μκ² μ λ¬λ μ μλ€.
Stream μ μ¬μ©ν λλ 'κ°μ²΄'λ₯Ό μ¬μ©νλ€.
κ°μ²΄(Entity)μ κ°μ²΄(Object)
κ°μ²΄ : νμ
λͺ
(νΈλ€)
κ°μ²΄ : νμ
μ μμΌ°μ λ λμκ² μ€μ λ‘! μ€λ κ² (λ§λ§μ΄)
μ /μΆλ ₯ APIλ μ /μΆλ ₯ μ€νΈλ¦Ό κ°μ²΄λ₯Ό μ΄μ©νλ€.
κ°μ²΄λ₯Ό μ΄μ©νλ ν¨μ
OutputStream(μΆλ ₯) / InputStream(μ
λ ₯)
π€ λ¬Έμμ΄ μΆλ ₯ π€
// = λ¨μΌ λ¬Έμ₯ μ£Όμμ²λ¦¬
/* */ = μ¬λ¬λ¬Έμ₯ μ£Όμμ²λ¦¬
ESCAPE λ¬Έμ
\b = backspace
β\t = μν ν (horizontal tab) μ½μ
β\n = μ ν (new line) μ½μ
\f = νΌνΌλ (form feed - λ€μ νμ΄μ§λ‘)
\r = μΊλ¦¬μ§λ¦¬ν΄(carrige return - μ μΌ μΌμͺ½ μμΉλ‘)
\' = ν λ°μ΄ν μ½μ
β\" = μ΄μ€ λ°μ΄ν μ½μ
β\ = μμ¬λμ¬ μ½μ
κ°νλ¬Έμκ° ν¬ν¨λ print ν¨μ
System.out.print(""); = μ€λ°κΏ β / μν°μλ μΆλ ₯
System.out.println(""); = λ΄λ €μ°κΈ°
System.out.printf(""); = μν° μλ μΆλ ₯μ ν¨, 볡μ‘ν μΆλ ₯μν λ μ¬μ©νλ€.
μμ1) System.out.printf("\tκ΅μ΄ : \d\n", kor1);
μμ2) 2022λ
02μ 10μΌ
System.out.printf("\dλ
\dμ\dμΌ", 2022, 02, 10);
μ«μλ₯Ό μΆλ ₯νλ €λ©΄
System.out.write(80);
Sysyem.out.flush();
β (Consloe κ²°κ³Ό) P μΆλ ₯
System.out.print(80);
β 80 μΆλ ₯
π€ νμ μ§μ μ μ΅μ μ μ΄μ©ν μΆλ ₯ π€
κ³ μ κΈΈμ΄ μΆλ ₯νκΈ°
avg(νκ· κ°) μ ꡬν λ κ²°κ³Όκ° xx.xxxxx λμ¬ κ²½μ° μμμ 2κ°κΉμ§λ§ λμ€κ² λ λ§λ€κ² νκΈ° μν΄μ β "%(μμμ κΉμ§μ) μ 체길μ΄.2f", xx.xxxxx);
λ³ν μ½λ
Argument Index (x$) λ₯Ό ν΅ν΄μ μμλ₯Ό λ°κΏ μ μλ€.
μμ) System.out.printf("%d %d %d\n", 1, 2, 3);
β 1 2 3 μΆλ ₯
System.out.printf("%2d %1$d\n", 1, 2, 3);
β 2 3 1 μΆλ ₯
π€ μ½μ μ λ ₯νκΈ° (System.in, Scanner) π€
Scanner λ read() / skip() μ μ΄μ©νμ¬ nextLine() / next() / newInt() / nextFloat() / nextDouble() κΈ°λ₯μ μ 곡νλ 'κ°μ²΄' μ΄λ€.
μμ)
Scanner scan = new Scanner (System.in); (import java.util.Scanner;)
β scan.nextInt(); β promptλ§ λ¨κ² λ¨
β System.out.print("κ΅μ΄1 : ");
kor1 = scan.nextInt(); // ν¨μλ κ²°κ³Όκ°λ§ λ¨κ²¨μ§κ² λλ€.
System.out.print("κ΅μ΄2 : ");
kor2 = scan.nextInt();
System.out.print("κ΅μ΄3 : ");
kor3 = scan.nextInt();
μ΄ λ kor1 = 0; kor2 = 0;, kor3 = 0; μΌλ‘ κΈ°λ³Έκ°μ λ§λ€μ΄ λλλ€.
0μΈ κΈ°λ³Έκ°μ μ
λ ₯κ°μΌλ‘ λ°°μΉλκ² λλ€.
π€ μ°μ μ°μ°μ π€
λ¨μ λμ
μ°μ°μ (The Simple Assignment Operator)
= λμ
μ°μ°μ int cadence = 0;
μ°μ μ°μ°μ (The Arithmetic Operators)
(+) λ§μ
μ°μ°μ int result = 1 + 2;
(-)λΊμ
μ°μ°μ result = result - 1;
(*)κ³±μ
μ°μ°μ result = result 2;
(/)λλμ
μ°μ°μ result = result / 2;
(%)λλ¨Έμ§ μ°μ°μ result = result % 7;
λλ¨Έμ§ μ°μ°μ
: μ μ μ°μ°μ (10 / 3) μΈ κ²½μ°μλ κ²°κ³Όκ° μ μλ‘ λμ¨λ€.
β λλ¨Έμ§κ° μλμ€λ κ²½μ°μλ 10 % 3 μΌλ‘ μ°μ°μ(%)λ₯Ό μ¬μ©νλ©΄ λλ¨Έμ§κ°μ΄ λμ¨λ€.
μ°μ°μμ μλ£ν
: 10 / 3
10 / 3.0
total = kor + eng + math;
avg = total / 3.0f; // 묡μμ μΈ νλ³ν
total = kor + eng + math;
avg = (float)(total / 3.0); // λͺ
μμ μΈ νλ³ν
μ°μ°μ μ°μ μμ
: 3 + 2 3
β (3 + 2) 3
λ¨νμ°μ°μ (Operators)
λ¨ν μ°μ°μ (The Unary Operators)
(+) μμ μ°μ°μ int result = +1;
(-) μμ μ°μ°μ result = -result;
(++) μ¦κ° μ°μ°μ result++; (1μ© μ¦κ°)
(--) κ°μ μ°μ°μ result--; (1μ© κ°μ)
(!) λΆμ μ°μ°μ !success
λ¨ν μ°μ°μμ μ μμ νμ μ°μ°μ
class PrePostDemo
{
pulic static void main(String[] args) {
int i = 3;
i++; (νμ μ°μ°μ)
System.out.println(i); // prints 4
++i; (μ μ μ°μ°μ)
System.out.println(i); // prints 5
// 4+1
System.out.println(++i); // prints 6
// 1+5 = 6
System.out.println(i++);
// i κ° λ¨Όμ μΆλ ₯λμ΄ ++μ΄ λ°μλμ§ μμ prints 6 κ²°κ³Όκ° λμ΄.
System.out.println(i);
// μμ½λμμ ++ μ΄λ£¨μ΄μ‘κΈ° λλ¬Έμ prints 7 μ κ²°κ³Όκ° λμ΄.
}
}
π€ λΉκ΅ / κ΄κ³ μ°μ°μ π€
λΉκ΅ μ°μ°μ (The Equality and Relational Operators)
(==) κ°λ€. values1 == value2
(!=) κ°μ§ μλ€. value1 != value2
(>) ~λ³΄λ€ ν¬λ€. value1 > value2
(>=) ~λ³΄λ€ ν¬κ±°λ κ°λ€. value1 >= value2
(<) ~λ³΄λ€ μλ€. value1 < value2
(<=) ~λ³΄λ€ μκ±°λ κ°λ€. value <= value2
λ
Όλ¦¬ μ°μ°μ (The Conditional Operators)
(&&) κ΅μ§ν© μ°μ°μ (value == 1) && (value1 == 1)
(||) ν©μ§ν© μ°μ°μ (value1 == 1) || (value2 == 2)
π€ λΉνΈ μ°μ°μ π€
λΉνΈ λ Όλ¦¬ μ°μ°μ (Bitwise Operators)
(&) λΉνΈ κ΅μ§ν© μ°μ°μ value1 & value2
(|) λΉνΈ ν©μ§ν© μ°μ°μ value1 | value2
(^) λΉνΈ μ°¨μ§ν© μ°μ°μ value ^ value2
(~) λΉνΈ λΆμ μ°μ°μ ~value1
μ¬ννΈ μ°μ°μ (Shift Operators)
(<<) μΌμͺ½ μ¬ννΈ μ°μ°μ value << 2
(>>) μ€λ₯Έμͺ½ μ¬ννΈ μ°μ°μ§ value >> 2
π€ λ³΅ν© λμ μ°μ°μμ μ°μ°μ μ°μ μμ π€
(+=) λ§μ
νμ λμ
X = X + 2 μ X += 2 λ‘ νν
(-=) λΊμ
νμ λμ
X = X - 3 μ X -= 3 μΌλ‘ νν
(=) κ³±μ
νμ λμ
X = X 3 μ X *= 3 μΌλ‘ νν
(/=) λλμ
νμ λμ
X = X / 3μ X /= 3 μΌλ‘ νν
(%=) λλ¨Έμ§ μ°μ° νμ λμ
X = X % 3 μ X %= 3 μΌλ‘ νν
(&=) λΉνΈ AND νμ λμ
X = X & 3 μ X &= 3 μΌλ‘ νν
(|=) λΉνΈ OR νμ λμ
X = X | 3 μ X |= 3 μΌλ‘ νν
(>>=) μ€λ₯Έμͺ½ μ¬ννΈ νμ λμ
X = X >> 3 μ X >>= 3 μΌλ‘ νν
(<<=) μΌμͺ½ μ¬ννΈ νμ λμ
X = X << 3 μ X <<= 3 μΌλ‘ νν
3ν μ°μ°μ (Bitwise Operators)
? : λΉνΈ κ΅μ§ν© μ°μ°μ value3 = (3 < 1) ? value1 : value2
β μμ 쑰건((3 < 1) ?)μ΄ μκ³ μ‘°κ±΄μ λ°λΌμ value1 μ΄λ value2 κ°μ΄ λ체 λ μ μλ μ°μ°μμ΄λ€.
μμ)
int validate = (0<=kor1 && kor1<=100)?1:0; // (γ°) μμ μλ 쑰건μ λ¨Όμ κ³μ°νμ μ°ΈμΌ κ²½μ° 1 , κ±°μ§μΌ κ²½μ° 0μ κ²°κ³Όκ°μ λνλΈλ€.
//System.out.println(0<=kor1 && kor1<=100?"μ ν¨ν©λλ€." : "μλͺ»λ κ°μ
λλ€."); // "μ‘°κ±΄μ΄ μ°ΈμΌ κ²½μ°" : "μ‘°κ±΄μ΄ κ±°μ§μΈ κ²½μ°"
β System.out.println (validate);
κ°μ²΄ νμ λΉκ΅ μ°μ°μ (The Type Comparison Operator instanceof)
instanceof ~μ μΈμ€ν΄μ€ μΈμ§λ₯Ό νμΈ
π€ μ μ΄ κ΅¬μ‘° π€
μ»΄ν¨ν° νλ‘κ·Έλ¨μ λ°λ³΅μ κΈ°λ³ΈμΌλ‘ νλ€.
μ μ΄κ΅¬μ‘° μ’
λ₯
μ νλ¬Έ : if / else / else if
λ°λ³΅λ¬Έ : while / do-wile / for
λΆκΈ°λ¬Έ : switch / case / β¦
π€ if μ while π€
// if(!(0<=kor1 && kor1<=100))
//if(0>kor1 || kor1>100)
while(kor<0 || 100>kor1 ) {
System.out.println("μ±μ λ²μ(0~100)λ₯Ό λ²μ΄λ¬μ΅λλ€.");
System.out.println("κ΅μ΄1:");
kor1 = scan.nextInt();
}
π€ μ μ΄κ΅¬μ‘° do-while λ¬Έ π€
do {
System.out.print("κ΅μ΄1 : ")
kor1 = scan.nextInt();
if(kor1<0 || 100<kor1)
System.out.println("μ±μ λ²μ(0~100)λ₯Ό λ²μ΄λ¬μ΅λλ€.");
} while (kor1<0 || 100<kor1);
do {
System.out.print("κ΅μ΄2 : ")
kor2 = scan.nextInt();
if(kor2<0 || 100<kor2)
System.out.println("μ±μ λ²μ(0~100)λ₯Ό λ²μ΄λ¬μ΅λλ€.");
} while (kor2<0 || 100<kor2);
do {
System.out.print("κ΅μ΄3 : ")
kor3 = scan.nextInt();
if(kor3<0 || 100<kor3)
System.out.println("μ±μ λ²μ(0~100)λ₯Ό λ²μ΄λ¬μ΅λλ€.");
} while (kor3<0 || 100<kor3);
π€ μ μ΄κ΅¬μ‘° for λ¬Έ π€
: νΉμ μ λ§νΌ λ°λ³΅
μμ)
// for (int n=1; n<=3; n++)
for (int i=0; i<3; i++)
System.out.printf("\tκ΅μ΄%d : %3d\n", i, kor1);
System.out.printf("\tμ΄μ : %3d\n", total);
System.out.printf("\tνκ· : %6.2f\n, avg);
π€ μ μ΄κ΅¬μ‘° else if μ else π€
if = λ
립μ
else if = μμ if λ¬Έκ³Ό μ΄μ΄μ λ¬Έμ₯μ΄ μ€νλλ€.
int menu;
.
.
.
System.out.println("\t1.μ±μ μ
λ ₯");
System.out.println("\t2.μ±μ μΆλ ₯");
System.out.println("\t3.μ’
λ£");
System.out.print("\t>");
menu = scan.nextInt();
// menu = 1 = μ
λ ₯
// menu = 2 = μΆλ ₯
if(menu == 1 ) {
~ μ±μ μ
λ ₯ λΆλΆ ~
}
else if(menu == 2) {
~μ±μ μΆλ ₯ λΆλΆ ~
}
else if(menu == 3) {
// System.exit(0); exit = νλ‘κ·Έλ¨ μ’
λ£ ν¨μ
break;
else
System.out.println("μ
λ ₯ μ€λ₯μ
λλ€. 1λ² ~ 3λ²κΉμ§λ§ μ
λ ₯ν μ μμ΅λλ€.");
}
System.out.println("good bye~");
}
}
π€ μ μ΄κ΅¬μ‘° switch μ break λΌλ²¨λ¬Έ π€
μ’ λ£ : // λΌλ²¨λ§λ€κΈ°
while(true) {
.
.
switch(menu) {
case 1:
~ μ±μ μ
λ ₯ λΆλΆ ~
case 2:
~μ±μ μΆλ ₯ λΆλΆ ~
break;
case 3:
break μ’
λ£;
default: // κ·Έ μΈμ κ°μ μλ―Ένλ€.
System.out.println("μ
λ ₯ μ€λ₯μ
λλ€. 1λ² ~ 3λ²κΉμ§λ§ μ
λ ₯ν μ μμ΅λλ€.");
}
System.out.println("good bye~");
}
}
}
π€ μ μ΄κ΅¬μ‘° Continue μ break π€
int n = 0;
Scanner scan = new Scanner (System.in);
System.out.print ("κ°μ spλ‘ κ΅¬λΆν΄μ 5κ° μ΄μ μ
λ ₯νμΈμ : ");
3 Enter, 34 5 6 234 345 54 45 Enter
while(scan.hasNext()) {
n = scan.nextInt();
if( n < 10)
continue;
if( n > 200)
break;
System.out.println(n);
}
π€ λ°°μ΄ π€
μμ) μμ΄ μ±μ μ μν λ°°μ΄μ μ μΈνμμ€
λ°°μ΄μ λ³μ μ΄λ¦κ³Ό 곡κ°μ λΉκ΅λ₯Ό ν΅ν΄ μ°¨μ΄μ μΈ μ£Όμμ κ°μ λΉκ΅λ₯Ό νλ€.
π€ μμ μ λ°°μ΄ μ΄μ©νκΈ° π€
main μ
// int kor1, kor2, kor3;
int[] kors = new int[3];
int total ;
float avg;
int menu;
Scanner scan = new Scanner (System.in);
~ μ
λ ₯λΆλΆ ~
for(int i=0; i<3; i++)
kors[i] = 0;
for (int i=0; i<3; i++)
do {
System.out.print("κ΅μ΄%d : " i+1);
kors[i] = scan.nextInt();
if(kors[i]<0 || 100<kors[i])
System.out.println("μ±μ λ²μ(0~100)λ₯Ό λ²μ΄λ¬μ΅λλ€.");
} while (kors[i]<0 || 100<kors[i]);
break;
~ μΆλ ₯λΆλΆ ~
total = kor1 + kor2 + kor3;
total = kors[0] + kors[1] + kors[2];
for (int i=0; i<3; i++)
System.out.printf("\tκ΅μ΄%d : %3d\n", i, kors[i]);
π€ λ€μ°¨μ λ°°μ΄ π€
main μ
int[] kors = new int[3*3]; // κ° νλ
λ§λ€ 3κ°μ μ±μ μ΄ νμνλ€λ μλ―Έ
int total ;
float avg;
int menu;
~ μ
λ ₯λΆλΆ ~
"κ°λ
μ "μΌλ‘ λλλ κ²½μ° (forλ¬Έ μ€μ²©)
for(int j=0; j<3; j++)
for(int i=0; i<3; i++)
kors[3*j+i] = 0;
β 2μ°¨μ λ°°μ΄
"물리μ "μΌλ‘ λλλ κ²½μ° ()
for (int j=0; i<3; j++)
for (int i=0; i<3; i++)
do {
System.out.print("%dνλ
κ΅μ΄%d : ",j+1, i+1);
kors[i] = scan.nextInt();
if(kors[3*j+i]<0 || 100<kors[3*j+i])
System.out.println("μ±μ λ²μ(0~100)λ₯Ό λ²μ΄λ¬μ΅λλ€.");
} while (kors[3*j+i]<0 || 100<kors[3*j+i]);
π€ λ€μ°¨μ λ°°μ΄ ννμ π€
~ μΆλ ₯λΆλΆ ~
for(int j=0; j<3; j++) {
total = kors[3*j+0] + kors[3*j+1]+ kors[3*j+2];
avg = total / 3.0f;
System.out.printf("<%dνλ
κ΅μ΄μ±μ >--------------------\n", j+1);
for(int i=0; i<3; i++)
System.out.prinf("/tκ΅μ΄%d : %d\n",j+1, i+1, kors[3*j+i]);
System.out.printf("/tμ΄μ : %d\n", total);
System.out.printf("/tνκ· : %6.2f\n", avg);
System.out.prinf("--------------------------------");
}
break;
π€ λ€μ°¨μ λ°°μ΄ νν π€
// int[] kors = new int[3*3];
int[] [] kors = new int [3][3];
int total;
float avg;
int menu;
for (int j=0; j<3; j++)
for(int=0; i<3; i++)
// kors[3*j*1] = 0;
kors[j][i] = 0;
for (int j=0; i<3; j++)
for (int i=0; i<3; i++)
do {
System.out.print("%dνλ
κ΅μ΄%d : ",j+1, i+1);
kors[j][i] = scan.nextInt();
if(kors[j][i]<0 || 100<kors[j][i])
System.out.println("μ±μ λ²μ(0~100)λ₯Ό λ²μ΄λ¬μ΅λλ€.");
} while (kors[j][i]<0 || 100<kors[j][i]);
for(int j=0; j<3; j++) {
total = kors[j][0] + kors[j][1]+ kors[j][2];
avg = total / 3.0f;
System.out.printf("<%dνλ
κ΅μ΄μ±μ >--------------------\n", j+1);
for(int i=0; i<3; i++)
System.out.prinf("/tκ΅μ΄%d : %d\n", i+1, kors[j][i]);
π€ μμν λ³μ π€
μμν λ³μκ° νμν κ²½μ°
int direction; direction = 4; direction = SE;
final int N = 1; N(1);
final int NE = 2; NE(2);
final int E = 3; E(3);
final int SE = 4; SE(4);
final int S = 5; S(5);
final int SW = 6; SW(6);
final int W = 7; W(7);
final int NW = 8; NW(8);
// final μ΄λΌλ ν€μλκ° μ μν λ³μ μμ μ¬μ©λκ² λλ©΄ 첫λ²μ§Έ κ°μ΄ λμ
λ μ΄νμ λ€λ₯Έ κ°μΌλ‘ λ°λ μ μλ€.
// final = νμ κ°μ κ°μ λ°λ λ³μ = μμν λ³μ
μΆμ² : λ§ν¬ν μ€νΈ