์ฌ์ค ํ๋ก๊ทธ๋จ ์ธ์ด์ ๋ฐ๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์ ๋ค ๋น์ทํ๋ค.
if, while, for ๋ณดํต ์ด ์ธ๊ฐ์ง ์น๊ตฌ๋ฅผ ํ๋๋ก else if, do while, for each, switch ๋ญ ์ด๋ ๊ฒ ๋ ๋ด์ฉ์ด ์๋ค.
์ฐ๋ ๋ฐฉ๋ฒ๋ ๋น์ทํ์ง๋ง ์ธ์ด์ ๋ฐ๋ผ ์กฐ๊ธ์ฉ ๋ชจ์์ด ๋ค๋ฅธ ๋ถ๋ถ๋ ์์ผ๋
์ผ๋จ Java language์์ ์กฐ๊ฑด๋ฌธ์ ์ด๋ป๊ฒ ์ฐ๋์ง ์์๋ณด์.
๐ ์กฐ๊ฑด๋ฌธ
์๋ฐ์์๋ if, else if, switch๋ฅผ ์ฌ์ฉ ํ ์ ์๊ณ ์ผํญ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค.
If ์ else if
- ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ด๋ฉด if ๋ฌธ์ body๋ฅผ ์คํํ๊ณ ๊ฑฐ์ง์ด๋ฉด ์คํํ์ง ์๋๋ค.
- else if ํ์์ผ๋ก if ๋ฌธ์ ์ฐ๊ฒฐํ์ฌ ๋๋ฆด ์ ์์ผ๋ฉฐ, ์ด ๊ฒฝ์ฐ ์ฐ๊ฒฐ ๋ ์กฐ๊ฑด๋ฌธ ์ค์์ ์์ ์กฐ๊ฑด๋ฌธ์ด ์คํ ๋๋ฉด ์ฐ๊ฒฐ ๋ ๋ค์ ์กฐ๊ฑด๋ฌธ๋ค์ ์คํ ๋์ง ์๋๋ค.
public class Test {
public static void main(String[] args) {
int a = 1;
if (a == 2) {
System.out.println("a == 2");
} else if (a == 1) {
System.out.println("first a == 1");
} else if (a == 1) { // java:S1862
System.out.println("second a == 1");
} else {
System.out.println("else");
}
}
}
first a == 1
ํ์ธ์ ์ํ์ฌ a == 1 ์กฐ๊ฑด๋ฌธ์ ๋๋ฒ์ ์๋๋ฐ ์ฌ์ค ์ ๋ ๊ฒ ์ ์ผ๋ฉด Related "if/else if" statements should not have the same condition (java:S1862)์ ๋ฒ๊ทธ๊ฐ ์๊ธด๋ค. major ์์ค์ ๋ฒ๊ทธ์ด๊ธด ํ์ง๋ง ์ ๋ ๊ฒ ์ฝ๋ฉํ ์ด์ ๋ ์์ผ๋ ๊ฐ์ ์กฐ๊ฑด๋ฌธ์ ๋ฐ๋ณตํด์ ์ฐ์ง ๋ง์.
switch
- ์ซ์ํ๊ณผ ๋ฌธ์ํ ๋ณ์๋ฅผ ์ฌ์ฉ ํ ์ ์๋ค.
- ํด๋น๋๋ ๊ฐ์ case์ body๊ฐ ์คํ๋๊ณ break๋ฅผ ๋ง๋๋ฉด switch๋ฌธ์ ๋น ์ ธ๋์จ๋ค.
- ์คํ ๋ case body๋ฌธ์ break๋ฌธ์ด ์๋ค๋ฉด break๋ฅผ ๋ง๋ ๋๊น์ง ๋ค์ ์ค์ ์ฝ๋๊ฐ ์คํ๋๋ค.
break ๋ฏธ ์์ฑ ์ runningํ๋๋ฐ ์ค๋ฅ๊ฐ ์๊ธฐ์ง๋ ์์ง๋ง Switch cases should end with an unconditional "break" statement(java:S128)์ ๋ฐ๋ผ break๋ฅผ ํด์ฃผ๋ผ๊ณ ์๋ ค์ค๋ค. blocker ์์ค์ ๊ถ๊ณ (?) ์ฌํญ์ด๋ผ๊ณ ํ๋ ์ฝ๋ฉํ์. - switch๋ฌธ์ ๋ชจ๋ case์ ํด๋น ๋์ง ์์ ๊ฒฝ์ฐ default body๊ฐ ์คํ๋๋ค.
default ๋ฏธ ์์ฑ ์ runningํ๋๋ฐ ์ค๋ฅ๊ฐ ์๊ธฐ์ง๋ ์์ง๋ง "switch" statements should have "default" clauses(java:S131)์ ๋ฐ๋ผ default๋ฅผ ์ฝ๋ฉํ๋ผ๊ณ ํ๋ค. critical ์์ค์ ๊ถ๊ณ (?) ์ฌํญ์ด๋ผ๊ณ ํ๋ ๋ฐ๋์ ์ฝ๋ฉํ์.
public class Test {
public static void main(String[] args) {
int a = 1;
switch (a) {
case 1:
System.out.println("hi 1");
// break; // java:S128
case 2:
System.out.println("hi 2");
break;
case 3:
System.out.println("hi 3");
break;
// default: // java:S131
// System.out.println("default");
// break;
}
}
}
hi 1
hi 2
์ผํญ์ฐ์ฐ์
- ์กฐ๊ฑด๋ฌธ?์ฐธ์ผ๊ฒฝ์ฐ:๊ฑฐ์ง์ผ๊ฒฝ์ฐ ์ ํํ๋ก ์ฐ์ด๋ฉฐ true/false์ ๋ฐ๋ผ ํด๋น ๋๋ ๊ฒฝ์ฐ์ ๊ฐ์ ๋๋ ค์ค๋ค.
public class Test {
public static void main(String[] args) {
int a = 1;
String result = a == 1 ? "true" : "false";
System.out.println(result);
}
}
true
'Lang > โ Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โ Java ํ๊ฒฝ๊ตฌ์ฑ * JDK, JRE ์ค์น ๋ฐ ํ์ธํ๊ธฐ for MacOS (0) | 2021.03.05 |
---|---|
โ Java * ๋ฐ๋ณต๋ฌธ ( for, for-each, while, do-while ) (0) | 2021.03.03 |
โ Java * CMD์์ ์๋ฐ ํจํค์ง ์ปดํ์ผ ๋ฐ ์คํ (0) | 2021.02.24 |
โ Java * Utility classes should not have public constructors (java:S1118) (0) | 2021.02.22 |
โ Java * ๋ณ์, ์๋ณ์, ์์์ ๋ํด ์์๋ณด์ (0) | 2021.01.26 |