JAVA - Newlecture

suesue leeΒ·2022λ…„ 2μ›” 16일
0

JAVA

λͺ©λ‘ 보기
2/6

이 글은 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("%2dd %3d %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 = 항상 같은 값을 λ°›λŠ” λ³€μˆ˜ = μƒμˆ˜ν˜• λ³€μˆ˜

좜처 : λ§ν¬ν…μŠ€νŠΈ

profile
미래의 μ›Ήν”„λ‘œκ·Έλž˜λ¨Έ

0개의 λŒ“κΈ€