์๋ ํ์ธ์ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ๋ฏผ์ ์ ๋๋ค .แ.แ
์ค๋์ ์ ์ด๋ฌธ์ธ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ์ ๋ํด์ ์ค๋ช ํ๊ฒ ์ต๋๋ค :)
โ๐ป ์ ์ด๋ฌธ
- ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋์ ํ๋ฆ์ ์์์ ์๋๋ก ์์ฐจ์ ์ผ๋ก ์คํ
- ์ ์ด๋ฌธ์ ์ฌ์ฉํ๋ฉด ์ฝ๋์ ํ๋ฆ์ ๊ฐ๋ฐ์๊ฐ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ๋ฐ๊ฟ ์ ์์
1๏ธโฃ ์กฐ๊ฑด๋ฌธ(if๋ฌธ, switch๋ฌธ)
- ํน์ ์กฐ๊ฑด์ ๋ถํฉํ๋ ๊ฒฝ์ฐ ์ด๋ค ์ฝ๋๋ฅผ ์คํ์ํค๋ฉด์ ์ด๋ค ์ฝ๋๋ ์คํ์ํค์ง ์์ ์ ์์
2๏ธโฃ ๋ฐ๋ณต๋ฌธ(for๋ฌธ, while๋ฌธ, do while๋ฌธ)์ผ๋ก ๋ถ๋ฅ
- ํน์ ํ ์ฝ๋๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์คํ์ํฌ ์ ์์
โ ์กฐ๊ฑด๋ฌธ
๐ if ๋ฌธ
- if๋ฌธ์ ์๊ดํธ ์์๋ boolean ๊ฐ์ผ๋ก ํ๊ฐ๋ ์ ์๋ ์กฐ๊ฑด์์ ๋ฃ์ด์ค
- if๋ฌธ์ ์ค๊ดํธ ์์ ์คํ ๋ธ๋ก์๋ ์กฐ๊ฑด์์ด ์ฐธ์ผ ๋ ์คํํ๊ณ ์ ํ๋ ์ฝ๋ ์ ์ด์ค
if (์กฐ๊ฑด์) {
//์ฐธ์ผ ๋ ์คํํ ์ฝ๋
}
๐ if...else๋ฌธ
- if ...else๋ฌธ์ ์กฐ๊ฑด์์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์คํ๋ธ๋ก์ ์ ํ
- if๋ฌธ์ ์กฐ๊ฑด์์ด true์ด๋ฉด ํด๋น ๋ธ๋ก์ด ์คํ๋๊ณ ์กฐ๊ฑด์์ด false์ด๋ฉด else if ๋ธ๋ก ์คํ
- else if์ ํด๋นํ๋ ๋ชจ๋ ์กฐ๊ฑด์์ด false๋ผ๋ฉด else ๋ธ๋ก ์คํ
if (์กฐ๊ฑด์ 1) {
//์กฐ๊ฑด์ 1์ด ์ฐธ์ด๋ผ๋ฉด ์คํ
} else if (์กฐ๊ฑด์ 2) {
//์กฐ๊ฑด์ 1์ด ์ฐธ์ด ์๋๋ฉด์ ์กฐ๊ฑด์ 2๊ฐ ์ฐธ์ด๋ฉด ์คํ
} else {
//์กฐ๊ฑด์ 1,2๊ฐ ์ฐธ์ด ์๋๋ฉด ์คํ
//else๋ฌธ์ ์๋ต ๊ฐ๋ฅ
}
๐ Switch๋ฌธ
- if ๋ฌธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์กฐ๊ฑด ์ ์ด๋ฌธ
- But, Switch๋ฌธ์ if๋ฌธ์ฒ๋ผ ์กฐ๊ฑด์์ด true ์ผ ๊ฒฝ์ฐ ๋ธ๋ก ๋ด๋ถ ์คํ๋ฌธ์ ์คํํ๋ ๊ฒ์ด ์๋ ๋ณ์๊ฐ ์ด๋ค ๊ฐ์ ๊ฐ๋๋์ ๋ฐ๋ผ ์คํ๋ฌธ์ด ์ ํ๋จ
- ๋ณ์์ ๊ฐ์ ๋ฐ๋ผ์ ์คํ๋ฌธ์ด ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๊ธฐ๋ฅ์ if๋ฌธ๋ณด๋ค ์ฝ๋๊ฐ ๊ฐ๊ฒฐ
- ์กฐ๊ฑด๋ฌธ์ ๊ฐ๊ณผ ๋์ผํ ๊ฐ์ case๋ก ๊ฐ์ ์คํ๋ฌธ์ ์คํ → ์๋ค๋ฉด, default ์คํ
- break๋ฌธ์ ์์ฑํ์ง ์์ผ๋ฉด switch๋ฌธ์ ํ์ถํ์ง ์๊ณ ๋ชจ๋ case๋ฌธ์ ์คํํ๊ฒ ๋จ = fall through
switch (์กฐ๊ฑด๋ฌธ){
case "1" :
System.out.println("1๋ฒ");;
break; //๋ค์ case๋ฅผ ์คํํ์ง ์๊ณ switch๋ฌธ ํ์ถ
case "2" :
System.out.println("2๋ฒ");;
break;
default: //case์ ๊ฐ์ด ์๋ค๋ฉด ์ฌ๊ธฐ ์คํ
System.out.println("์๋ ์ซ์");
break;
}
# Scanner ํด๋์ค
- java.util ํจํค์ง์ Scanner ํด๋์ค๋ฅผ ์ด์ฉํ๋ฉด ์ฝ์๋ก๋ถํฐ ๊ธฐ๋ณธ ํ์ ์ ๊ฐ์ ๋ฐ๋ก ์ฝ์ ์ ์์
- Scanner ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ค๋ฉด ์์ฑ์์ System.in ๋งค๊ฐ๊ฐ์ ์ฃผ๋ฉด ๋จ
- Scanner ๋ฉ์๋๋ค์ ์ฝ์์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ ํ Enterํค๋ฅผ ๋๋ฅด๋ฉด ๋์ํ๋๋ก ๋์ด์์
Scanner scanner = new Scanner(System.in)
# nextLine() : ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ๋ฆฌํดํ๋ ๋ฉ์๋
- Enter๋ฅผ ์น๊ธฐ ์ ๊น์ง ์ด ๋ฌธ์์ด์ ๋ชจ๋ ๋ฆฌํด ex) ์๋ ํ์ธ์ ๋ฐ๊ฐ์ต๋๋ค → ์๋ ํ์ธ์ ๋ฐ๊ฐ์ต๋๋ค
* next() ๋ฉ์๋ : ์คํ์ด์ค(๊ณต๋ฐฑ) ์ ๊น์ง ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ๋ฆฌํด ex) ์๋ ํ์ธ์ ๋ฐ๊ฐ์ต๋๋ค → ์๋ ํ์ธ์
โ๐ป ์กฐ๊ฑด๋ฌธ ๋ฌธ์ ๋ก ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ
๐ ๊ฐ๋ฐ
- ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ผ๋ฆฌ์ ์ธ ํด๊ฒฐ๋ฐฉ๋ฒ์ ๋ด์ ์ฝ๋๋ฅผ ์์ฑํ๋ ์ผ
→ ๋จผ์ ํด๊ฒฐํด์ผ ํ ๋ฌธ์ ๊ฐ ๋ฌด์์ด์ง ๋ฐ๋ฅด๊ฒ ์ ์ํ๊ณ ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ์ด๋ฅผ ํด๊ฒฐํ ์ ์์์ง์ ๋ํ ๋ฐ๋ฅธ ์๋ฃจ์ ํ์
๐ ์๊ณ ๋ฆฌ์ฆ
- ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ผ๋ จ์ ์ ์ฐจ๋ ๋ฐฉ๋ฒ์ ์ ํด์ง ํํ๋ก ํํํ ๊ฒ
- ๋ฌธ์ ํด๊ฒฐ์ ์ํ ๊ณ ๋ฏผ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ํ์ด๋ด๋ ์์ ์ ํ๋ ๋ฐฉ๋ฒ
- ์ปดํจํฐ๋ ์์ฃผ ์์ ๋จ์๋ก ์ ๋ ฅํด์ผ๋ง ์ฌ๋์ด ๋ง์กฑํ ๋งํผ์ ์๋น์ค ์ ๊ณตํ๋ ์ํํธ์จ์ด๋ก ๋์
๐ ์๋ ์ฝ๋ (pseudocode)
- ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ์ ์์ ์ธ๊ฐ์ ์ธ์ด๋ก ์์ฑํ๋ฉด ๋ชจ๋ ๊ณผ์ ์ ์กฐ๊ธ ๋ ์ฝ๊ฒ ์ดํดํ ์ ์์
- ์ด๋, ํ๋ก๊ทธ๋จ์ ์ ์ฐจ๋ฅผ ์ฐ๋ฆฌ๊ฐ ์ค์ ๋ก ์ฌ์ฉํ๋ ์ผ๋ฐ์ ์ธ ์ธ์ด(์์ฐ์ด)๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๋ ์ฝ๋๋ผ๊ณ ํจ
- ์ค์ ์ฝ๋ฉ ์ , ํ๋ก๊ทธ๋จ์ ์๋ ์์์ ๊ฐ์ ํ๋ฆ ํ์ ๊ฐ๋ฅ
โ ๋ฐ๋ณต๋ฌธ
- ์ฝ๋๋ค์ด ๋ฐ๋ณต์ ์ผ๋ก ์คํ๋๋๋ก ํ ๋ ์ฌ์ฉ๋จ
- for๋ฌธ๊ณผ while๋ฌธ์ ์๋ก ๋ณํ์ด ๊ฐ๋ฅ
- for๋ฌธ์ ๋ฐ๋ณตํ์๋ฅผ ์๊ณ ์์ ๋ ์ฃผ๋ก ์ฌ์ฉํ๊ณ while๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ๋ณตํ ๋ ์ฃผ๋ก ์ฌ์ฉ
๐ for ๋ฌธ
- ์กฐ๊ฑด์์ด ์ฐธ์ธ ๋์ ์ฃผ์ด์ง ํ์๋งํผ ์คํ๋ฌธ์ ๋ฐ๋ณต์ ์ผ๋ก ์ํ
- ์กฐ๊ฑด์์ ์ถฉ์กฑํ๋ ๋์ ์ด๊ธฐํ์๋ถํฐ ์์ํด์ ์ฆ๊ฐ์์ ๊ท์น์ ๋ฐ๋ผ์ ์คํํจ
- ์กฐ๊ฑด์ด ์ถฉ์กฑํ์ง ์์ผ๋ฉด ์คํ๋ฌธ์ ์คํํ์ง ์๊ณ ๋๋จ
public class Main{
public static void main(String[] args){
int sum = =0;
for (int num=0; num<10; num++){ //์์;๋;์ฆ๊ฐ
sum += num;
}
System.out.println(sum); // 1-9๊น์ง์ ํฉ์ธ 45 ์ถ๋ ฅ
}
}
(1) num์ด๋ผ๋ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ์ด๊น๊ฐ์ผ๋ก 0 ๋์
(2) num์ด false๊ฐ ๋๊ธฐ ์ , ์ฆ 10์ด ๋๊ธฐ ์ ๊น์ง ๋ฐ๋ณต
(3) ์คํ ๋ธ๋ก์ ๋น ์ ธ๋์ค๋ฉด num์ด 1 ์ฆ๊ฐํจ
(4) num์ด 0์ผ ๋๊น์ง ๋ฐ๋ณต
(5) num์ด 10์ด๋๋ฉด ์กฐ๊ฑด์ด ๋ง์กฑ๋์ง ์์ผ๋ฏ๋ก for๋ฌธ ์ข ๋ฃ
for (์ด๊ธฐํ; ์กฐ๊ฑด์; ์ฆ๊ฐ์)
1๏ธโฃ ์ด๊ธฐํ (์์)
- for๋ฌธ์ด ์์ํ ๋ ์ต์ด ํ ๋ฒ๋ง ์ํ๋๋ฉฐ ์ฌ์ฉํ ๋ณ์์ ์ด๊น๊ฐ์ ์ ํจ
- ์ด๊ธฐํ์์ด ํ์ ์์ ๊ฒฝ์ฐ์๋ ์ด๊ธฐํ์์ ์๋ตํ ์ ์๊ณ ์ด๊ธฐํ์์ด๋ ์ฆ๊ฐ์์ ๋ ์ด์ ๊ฐ๋ฅ !
2๏ธโฃ ์กฐ๊ฑด์ (๋)
- ๊ณ์ ๋ฐ๋ณตํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ์กฐ๊ฑด
- ์กฐ๊ฑด์ ์์ ๊ฐ์ด true๋ผ๋ฉด ์คํ๋ฌธ์ ์คํ์ํค๊ณ false๋ผ๋ฉด ๋ ์ด์ ๋ธ๋ก์ ์คํํ์ง ์๊ณ ๋๋จ
3๏ธโฃ ์ฆ๊ฐ์
- ๋ฐ๋ณต ํ์๋ฅผ ๊ฒฐ์ ํ๋ ๊ท์น
- ๋ณ์์ ๊ฐ์ ๋ํ๊ฑฐ๋ ๊ณฑํ๋ ๋ฑ ์ํ ๋ฐฉ์์ ์ง์
- ++์ ๋ฐ๋ณต๋ฌธ์์ ์์ฃผ ์ฐ๋ ์ฆ๊ฐ ์ฐ์ฐ์๋ก 1์ ์ฆ๊ฐ์ํด
๐ enhanced for๋ฌธ (ํฅ์๋ for๋ฌธ)
- ์ปฌ๋ ์ ๊ฐ์ฒด๋ฅผ ์ข ๋ ์ฝ๊ฒ ์ฒ๋ฆฌํ ๋ชฉ์ ์ผ๋ก ํฅ์๋ for๋ฌธ ์ฌ์ฉ
- ํฅ์๋ for๋ฌธ์ ๋ฐ๋ณต์คํ์ ํ๊ธฐ ์ํด ์นด์ดํฐ ๋ณ์์ ์ฆ๊ฐ์์ ์ฌ์ฉํ์ง ์์
- ๋ฐฐ์ด ๋ฐ ์ปฌ๋ ์ ํญ๋ชฉ์ ๊ฐ์๋งํผ ๋ฐ๋ณตํ๊ณ ์๋์ ์ผ๋ก for๋ฌธ์ ๋น ์ ธ ๋๊ฐ
public class EnhancedForLoop {
public static void main(String[] args) throws Exception {
String[] names = {"kim","Hong","kang"};
for (String name : names) {
System.out.println(name + "๋ ์๋
ํ์ธ์.");
}
}
}
- for๋ฌธ์ ๊ดํธ ์์๋ ๋ฐฐ์ด์์ ๊บผ๋ธ ํญ๋ชฉ์ ์ ์ํ ๋ณ์ ์ ์ธ, ์ฝ๋ก , ์ฌ์ฉํ ๋ฐฐ์ด์ด ์์ฑ๋จ (ex. name : names )
๐ While๋ฌธ
- ์กฐ๊ฑด์์ด true ์ผ ๊ฒฝ์ฐ ๊ณ์ํด์ ๋ฐ๋ณต
- for๋ฌธ๊ณผ while๋ฌธ์ ์ด๊ธฐํ, ์ฆ๊ฐ์์ ์์น๋ง ๋ค๋ฅผ ๋ฟ ์ํธ ๋์ฒด๊ฐ ๊ฐ๋ฅํจ
(์ด๊ธฐํ);
while (์กฐ๊ฑด์) {
์คํ๋ฌธ; //์กฐ๊ฑด์์ด ์ฐธ์ธ ๋์ ์คํ
์ฆ๊ฐ์;
}
int num = 0, sum = 0 ; //์ด๊น๊ฐ ์ค์
while (num <= 10) { //์กฐ๊ฑด์
sum += num ; //sum = sum + num๊ณผ ๋์ผ (์คํ๋ฌธ)
num ++; //์ฆ๊ฐ์
}
System.out.println(sum);
- num๊ณผ sum ์ด๋ผ๋ ์ ์ ํ์ ์ ๋ณ์๋ฅผ ์ ์ธํ๊ณ ์ด๊ธฐ๊ฐ์ผ๋ก 0์ ๋์
- num์ ํ์ฌ 10๋ณด๋ค ์์ผ๋ฏ๋ก ๋ธ๋ก ์์ ์ฝ๋๊ฐ ์ํ๋จ → sum์ด ํ์ฌ์ num๋งํผ ์ฆ๊ฐํ๊ณ num์ด 1 ์ฆ๊ฐํจ
- num์ด 11์ด๋๋ฉด ์กฐ๊ฑด์์ด ๊ฑฐ์ง์ด๋ฏ๋ก while๋ฌธ์ด ์ข ๋ฃ๋จ
๐ do - While๋ฌธ
- ์กฐ๊ฑด์์ ์ํด ๋ฐ๋ณต ์คํํ๋ค๋ ์ ์ด while๊ณผ ๋์ผ
do {
(1)์คํ๋ฌธ //์ฒ์ ํ ๋ฒ์ ๋ฌด์กฐ๊ฑด ์คํ
} while ((2)์กฐ๊ฑด์);
- do-while์ด ์ฒ์ ์คํ๋ ๋ (1)์ ๋จผ์ ์คํ
- (1)์คํ๋ฌธ์ด ๋ชจ๋ ์คํ๋๋ฉด (2)์กฐ๊ฑด์์ ํ๊ฐ
- ๊ทธ ๊ฒฐ๊ณผ๊ฐ true์ด๋ฉด (1)์คํ๋ฌธ → (2)์กฐ๊ฑด์์ผ๋ก ๋ฐ๋ณต ์คํํ๊ณ false๋ฉด do-while๋ฌธ ์ข ๋ฃ
๐ชด ์๋ฅผ ๋ค์ด, 1 - 10 ์ฌ์ด์ ์ ์๋ฅผ ๋ณ์ randomNum์ ์ ์ฅํ๊ณ ๊ฐ์ ๋ง์ถ๋ do-while ๋ฌธ์ด๋ผ๋ฉด?
import java.util.Scanner;
public class Main{
public static void main(String args[]){
int input = 0, randomNum = 0 ;
randomNum = (int)(Math.random()*10) + 1; //1~10์ ์ ๋๋ค ์์ฑ
Scanner scanner = new Scanner(System.in);
do{
System.out.println("1๊ณผ 10์ฌ์ด์ ์ ์๋ฅผ ์
๋ ฅํ์ธ์.");
input = scanner.nextInt();
if(input > randomNum) {
System.out.println("๋ ์์ ์ ์๋ฅผ ์
๋ ฅํ์ธ์");
} else if (input < randomNum) {
System.out.println("๋ ํฐ ์ ์๋ฅผ ์
๋ ฅํ์ธ์");
}
} while(input != randomNum); //input๊ณผ randomNum์ด ๋ค๋ฅผ ๋๊น์ง ๋ฐ๋ณต
System.out.println(randomNum + "์ ๋ต์
๋๋ค!"); //input๊ณผ random์ด ๊ฐ์์ง๋ฉด ์ถ๋ ฅ
}
}
๐ฑ Math.random()
- 0๊ณผ 1 ์ฌ์ด์ ์ค์๋ฅผ ๋ฆฌํดํจ
- 0 <= random < 1
๐๐ป break๋ฌธ๊ณผ continue๋ฌธ
๐break๋ฌธ
- for๋ฌธ, while๋ฌธ, do-while๋ฌธ, switch๋ฌธ์ ์คํ ์ค์งํ ๋ ์ฌ์ฉ๋จ
- break๋ฌธ์ ๋๊ฒ if๋ฌธ๊ณผ ๊ฐ์ด ์ฌ์ฉ๋๋ฉฐ if๋ฌธ์ ์กฐ๊ฑด์์ ๋ฐ๋ผ for/ while๋ฌธ์ ์ข ๋ฃํ ๋ ์ฌ์ฉ
- but, ๋ง์ฝ ๋ฐ๋ณต๋ฌธ์ด ์ค์ฒฉ๋์ด ์์ ๊ฒฝ์ฐ break๋ฌธ์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฐ๋ณต๋ฌธ๋ง ์ข ๋ฃํ๊ณ ๋ฐ๊นฅ์ชฝ ๋ฐ๋ณต๋ฌธ์๋ ์ํฅ์ ๋ฏธ์น์ง ์์
๐continue๋ฌธ
- ๋ฐ๋ณต๋ฌธ์ธ for๋ฌธ, while๋ฌธ, do-while๋ฌธ์์๋ง ์ฌ์ฉ๋จ
- ๋ธ๋ก ๋ด๋ถ์์ continue๋ฌธ์ด ์คํ๋๋ฉด for๋ฌธ์ ์ฆ๊ฐ๋ฌธ ํน์ while, do-while๋ฌธ์ ์กฐ๊ฑด์์ผ๋ก ์ด๋ํ์ฌ ์๋ํจ
- ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํ์ง ์๊ณ ๋ค์ ์ฐจ๋ก๋ก ๋์ด๊ฐ ๊ณ์ ๋ฐ๋ณต์ ์ํ
- if๋ฌธ์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ continue๋ฅผ ์คํํ์ฌ ๊ทธ ์ดํ์ ์ฝ๋๋ฅผ ์คํํ์ง ์๊ณ ๋ค์ ๋ฐ๋ณต์ ๋์ด๊ฐ
'Study > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] OOP ํ๋์ ๋ฉ์๋ (0) | 2022.05.10 |
---|---|
[Java] OOP ํด๋์ค์ ๊ฐ์ฒด (0) | 2022.05.10 |
[Java] ์ฝ์ ์ ์ถ๋ ฅ (0) | 2022.05.05 |
[Java] ์ฐ์ฐ์ (0) | 2022.05.04 |
[Java] ๋ณ์, ์์, ํ์ ๋ณํ (0) | 2022.05.04 |