ํน์ ๋ฐ์ดํฐ์ ๊ฐ์ ๋ฐ๋ผ ์ํํ ์์
์ ์ ํํ๋ ๊ตฌ๋ฌธ์ผ๋ก switch๋ฅผ ์ฌ์ฉํ๋ค.
์ผ๋ฐ์ ์ธ ์ฌ์ฉ๋ฒ์ C/C++์ ๋ค๋ฅด์ง ์๋ค.
public class example {
public static void main(String[] args) {
String select = "ORANGE";
String fruit;
switch(select){
case "APPLE" :
fruit = "apple";
System.out.println("์ฌ๊ณผ");
break;
case "BANANA" :
fruit = "banana";
System.out.println("๋ฐ๋๋");
break;
case "ORANGE" :
fruit = "orange";
System.out.println("์ค๋ ์ง");
break;
default:
fruit = "default";
System.out.println("default");
break;
}
System.out.println(fruit);
}
}switch() ๋งค๊ฐ๋ณ์์ ๋ฐ์ดํฐ ๊ฐ์ ์
๋ ฅํ๊ณ case : ๋ฅผ ์ด์ฉํด ๊ฐ์ ๋ฐ๋ผ ๊ตฌ๋ฌธ์ ๊ตฌ๋ถํ๋ฉด ๋๋ค.
-
String์ด๋ ,Integer๊ณผ ๊ฐ์ Wrapperํ์ ์ด ์ฌ ์ ์๋ค.
-
case์ ๊ฐ์๋ ๋ฆฌํฐ๋ด ์ด๋ ์์๊ฐ ์์ผ ํ๊ณ ์ค๋ณตํด์๋ ์๋๋ค.
Java 12๋ฒ์ ์ดํ์ case ->๋ฅผ ์ด์ฉํ์ฌ ์์
ํ ๊ตฌ๋ฌธ์ ์์ฑํ ์ ์๊ฒ ๋์๊ณ break๋ฅผ ์๋ต์ด ๊ฐ๋ฅํด์ก๋ค.
๋ํ, ->์ yield๋ฅผ ์ฌ์ฉํ์ฌ Switch๋ ๊ฐ์ ๋ฐํํ ์ ์๊ฒ ๋์๋ค.
case์ ๋ฐ๋ผ ํน์ ๋ณ์์ ๊ฐ์ ๋ฐ๊พธ๋ ๊ฒฝ์ฐ์๋ ์์ ์ฝ๋์ ๊ฐ์ด ์ธ๋ถ์ ๋ณ์์ ๊ฐ์ ํ ๋นํด์ฃผ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋น์ทํ ์ฝ๋๋ฅผ ๋ฐ๋ณต์์ฑํด์ผํ๋ ๋จ์ ์ด ์กด์ฌํ๋๋ฐ ์ฝ๊ฒ ๊ฐ์ ๋ฐ๊ฟ ์ ์๊ฒ ๋์๋ค.
public class example {
public static void main(String[] args) {
String select = "ORANGE";
String fruit;
fruit = switch(select){
case "APPLE" -> {
System.out.println("์ฌ๊ณผ");
yield "apple";
}
case "BANANA" -> {
System.out.println("๋ฐ๋๋");
yield "banana";
}
case "ORANGE" -> {
System.out.println("์ค๋ ์ง");
yield "orange";
}
default -> {
System.out.println("์์");
yield "default";
}
};
System.out.println(fruit); //orange
}
}yield๋ case๋ฌธ์์ ํค์๋๋ก ์ฌ์ฉ๋์ง๋ง ๋ณ์ ๋ช
์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
int yield = 10; //error๊ฐ ๋์ง ์๋๋ค.if() ๊ดํธ์์ ์ค๋ ๋ฐ์ดํฐ(๊ตฌ๋ฌธ์ ๋ฐํ ๊ฐ)์ booleanํ์ผ๋ก true์ผ ๋ ์ํํ๋ ๋ฌธ๋ฒ
int i = 10;
if(i == 1){
System.out.println("1");
} else if( i > 1 && i < 7) {
System.out.println("2์ด์ 6์ดํ");
}
else {
System.out.println("7์ด์");
}for(int i=0; i < 10; i++){
System.out.print(i+ " ");
}
//0 1 2 3 4 5 6 7 8 9๊ธฐ๋ณธ for๋ฌธ์ ๊ดํธ ์์ ๊ตฌ๋ฌธ์ 3๊ฐ์ง๊ฐ ์ฌ ์ ์์ผ๋ฉฐ ์ด๊ธฐ์, ์กฐ๊ฑด ์, ์ฆ๊ฐ ์ ์ผ๋ก ์ ์ด๊ฐ ๊ฐ๋ฅํ๋ค.
for(int i : new int[]{0,1,2,3,4,5,6,7,8,9}){
System.out.print(i+ " ");
}
//0 1 2 3 4 5 6 7 8 9์กฐ๊ฑด์์ด ์๋ ๋ณ์ํ์
๋ณ์๋ช
: ๋ฐฐ์ด/์ปฌ๋ ์
์ ์
๋ ฅํ๋ฉด ํด๋น ๋ ํผ๋ฐ์ค ๋ฐ์ดํฐ์ ๊ฐ์ ์ฒ์๋ถํฐ ๋๊น์ง ์กฐํ๊ฐ ๊ฐ๋ฅํ๋ค. (์ปฌ๋ ์
์ ์ ์ฅ๋์ด์๋ ์์๋ค์ ์ฝ์ด์ค๊ธฐ ์ํ Iterator๋ฅผ ํตํด ์กฐํ๋ฅผ ํ๋ค.)
๋ฐ๋ณต๋ฌธ๊ณผ๋ ๋ฐ์ ํ ๊ด๋ จ์ ์๋ ๋ด์ฉ์ผ ์ ์์ง๋ง ๋์จ๊น์ ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค.
Collection์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ ์๋ฃ๊ตฌ์กฐ๋ค์ ์กฐํ ํ๋ ๋ฐ ์์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ฐฉ๋ฒ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฅํ๊ฒ ์ ๊ณตํด์ค๋ค. (๋คํ์ฑ)
๋ฉ์๋
-
hasNext() : ๋ค์ ์์๊ฐ ์๋์ง ์ฒดํฌ (์๋ค๋ฉด true)
-
next() : ๋ค์ ๋ฐ์ดํฐ ๋ฐํ
-
remove() : next()๋ก ์ฝ์ ์์๋ฅผ ์ญ์
๋ฐฐ์ด/์ปฌ๋ ์
์ ๋ฐ์ดํฐ ํ์
์ด ๋ช
์๋์ด์๊ธฐ ๋๋ฌธ์ ์์ ๋ณ์ํ์
์ varํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ํ์
์ถ๋ก ๋ ๊ฐ๋ฅํ๋ค.
C++์ for(auto : )๊ตฌ๋ฌธ๊ณผ ๋น์ทํ๋ค.
C/C++๊ณผ while๋ฌธ์ ๋์ผํ๊ณ while()๊ดํธ์์ ์กฐ๊ฑด์์ด true์ด๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋๊ฒ๋๋ค.
๊ธฐ๋ณธ switch๋ฌธ์์ ์ฐ์ธ๋ค๋ฉด ๊ฐ case ๊ตฌ๋ฌธ์ ์ค๋จํ๊ธฐ ์ํ ๊ตฌ๋ฌธ์ผ๋ก break๊ฐ ์๋ค๋ฉด ๋ค์ case๊ฐ ์ด์ด์ ์คํ์ด๋๋ค.
๋ฐ๋ณต๋ฌธ์์ ์ฐ์ธ๋ค๋ฉด ํ์ฌ ์ฝ๋ ๋ธ๋ญ( {} )์ ํด๋นํ๋ ๋ฐ๋ณต๋ฌธ์ ํ์ถํ๋ค.
while์์ ์ฌ์ฉํ๋ฉด ๋ค์ ๊ตฌ๋ฌธ์ ์คํํ์ง ์๊ณ ๋ค์ ์ฒ์๋ถํฐ ๋ฐ๋ณต๋ฌธ์ ์คํํ๊ฒ ๋๋ฉฐ for๋ฌธ์์ ์ฌ์ฉํ๋ฉด ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค์ ๊ตฌ๋ฌธ์ ์คํํ์ง ์๊ณ ์ฒ์๋ถํฐ ๋ฐ๋ณตํ๊ฒ ๋๋๋ฐ ์ฆ๊ฐ ์์ ํ๋ฒ ์ํ ํ ์์ํ๋ค.
์ค๋ช ์ด ์ ๋งคํ๋ฐ ํ๋ง๋๋ก ๋ฐ๋ณต๋ฌธ ์ค conitnue๋ฅผ ๋ง๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ๊ฐ์ฅ ๋์ผ๋ก ๊ฐ๋ ๋๋์ด๋ค.
๋ฉ์๋ ์์์ ์ฌ์ฉํ๋ฉฐ ๋ฉ์๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ตฌ๋ฌธ
https://gist.github.com/gowoonsori/409d7f2b3d79f75bbe566d760502e9db