์๋
! ์ค๋ ๊ฐ์๋ ๊ทธ๋ฆฌ ๊ธธ์ง ์์ง๋ง ํ์คํ ์ ์ฉํ ๊ฒ์
๋๋ค :) ์ฐ๋ฆฌ๋ ์ด๋ฅธ๋ฐ ์ผํญ ์ฐ์ฐ์ ์ ๋ํด ์ด์ผ๊ธฐํ ๊ฒ์
๋๋ค .
Ternary๋ " ์ธ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋ "์ ์๋ฏธํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์กฐ๊ฑด์ ๋๋ฌ์ผ ๊ดํธ๋ ํ์ํ์ง ์์ต๋๋ค. ๊ฐ๋
์ฑ์ ๋์ด๊ธฐ ์ํด ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๊ฒ๋ค ์์ด๋ ์๋ํฉ๋๋ค.
๊ธฐ๋ฅ์ ์ผ ๋ฟ๋ง ์๋๋ผ ์ฝ๊ฒ ์ฝ์ ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ๋์์ด ๋๋ ํ๋ก๊ทธ๋๋จธ๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก์ ๊ถ์ฅ ์ฌํญ์ ํจ๊ป ์ ๊ณตํฉ๋๋ค.

if-else
์ด๋ฏธ ๋ง๋ ์ ์ด ํ๋ฆ ๋ฌธ ์ ๋ํ ๋์์
๋๋ค . ์๋ฅผ ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ R๋ฑ๊ธ ์ํ(17์ธ ๋ฏธ๋ง์ ๋ถ๋ชจ ๋๋ ์ฑ์ธ ๋ณดํธ์ ๋๋ฐ ํ์)๋ฅผ ๋ณด๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์๋ด์ธ์ ๋ฌธ ์์์ ๋์ด๋ฅผ ํ์ธํฉ๋๋ค. ๋์ด ํ์ธ์ ํฉ๊ฒฉํ๋ฉด ์
์ฅ์ด ํ์ฉ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ง์ผ๋ก ๋ณด๋ด์ง๋๋ค. ํด๋์ค๋ฅผ ์ ์ธ Person
ํ๊ณ ๋ค์ ๋ช
๋ น๋ฌธ์ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ํ์ธํฉ๋๋ค if-else
.
public class Person {
private int age;
public Person(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
Person person = new Person(22);
String usherResponse;
if (person.getAge() >= 18) {
usherResponse = "Everything is in order. Come in!";
} else {
usherResponse = "This film is not suitable for your age!";
}
System.out.println(usherResponse);
}
}
์ฝ์ ์ถ๋ ฅ:
"Everything is in order. Come in!"
์ฝ์ ์ถ๋ ฅ์ ์ ๊ฑฐํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ์ธ๋ฉ๋๋ค.
if (person.getAge() >= 18) {
usherResponse = "Everything is in order. Come in!";
} else {
usherResponse = "This film is not suitable for your age!";
}
์ฌ๊ธฐ์ ๋
ผ๋ฆฌ๋ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ํ๋์ ์กฐ๊ฑด์ด ํ์ธ๋ฉ๋๋ค(๋์ด >= 18). ๊ฒฐ๊ณผ์ ๋ฐ๋ผ usherResponse
์๋ด์ธ์ ์๋ต๊ณผ ํจ๊ป ๋ณ์์ ๋ ๋ฌธ์์ด ์ค ํ๋๊ฐ ํ ๋น๋ฉ๋๋ค. ์ด๋ฌํ ์ํฉ("ํ๋์ ์กฐ๊ฑด - ๋ ๊ฐ์ง ๊ฐ๋ฅํ ๊ฒฐ๊ณผ")์ ํ๋ก๊ทธ๋๋ฐ์์ ๋งค์ฐ ์ผ๋ฐ์ ์
๋๋ค. ๊ทธ๋์ ์ผํญ ์ฐ์ฐ์๊ฐ ๋ง๋ค์ด์ก์ต๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ์ธ์ ํ ์ค์ ์ฝ๋๋ก ๋จ์ํํ ์ ์์ต๋๋ค.
public static void main(String[] args) {
Person person = new Person(22);
String usherResponse = (person.getAge() > 18) ? "Everything is in order. Come in!" : "This film is not suitable for your age!";
System.out.println(usherResponse);
}
์ด ์ฐ์ฐ์์ ์๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. 3๊ฐ์ ๊ตฌ์ฑ ์์๊ฐ ํฌํจ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ผํญ ์ฐ์ฐ์๋ผ๊ณ ํฉ๋๋ค.
- ํ๋์ ์กฐ๊ฑด(
person.getAge() > 18
) - ๋ ๊ฐ์ง ๊ฐ๋ฅํ ๊ฒฐ๊ณผ( "๋ชจ๋ ๊ฒ์ด ์ ์์ ๋๋ค. ๋ค์ด์!" ๋ฐ "์ด ์ํ๋ ๊ทํ์ ์ฐ๋ น์ ์ ํฉํ์ง ์์ต๋๋ค!" )
person.getAge() > 18 ?
"์ด ์ฌ๋์ ๋์ด๊ฐ 18์ธ ์ด์์
๋๊น?" ๊ทธ๋ฐ ๋ค์ ์ฒซ ๋ฒ์งธ ๊ฐ์ ์๋๋ค . ์ด ๊ฐ์ ์กฐ๊ฑด์ด ๋ค์์ผ๋ก ํ๊ฐ๋๋ ๊ฒฝ์ฐ์true
์ฌ์ฉ๋ฉ๋๋ค .
String usherResponse = person.getAge() > 18 ? "Everything is in order. Come in!"
์ด ์ฌ๋์ ๋์ด๊ฐ 18์ธ ์ด์์
๋๊น? ๊ทธ๋ ๋ค๋ฉด ๋ณ์๋ฅผ "๋ชจ๋ ๊ฒ์ด ์ ์์
๋๋ค. ๋ค์ด์ค์ธ์!"usherResponse
๋ก ์ค์ ํฉ๋๋ค. ๋ค์์ " :
" ๊ธฐํธ์ ๋ ๋ฒ์งธ ๊ฐ ์
๋๋ค . ์ด ๊ฐ์ ์กฐ๊ฑด์ด ๋ค์์ผ๋ก ํ๊ฐ๋๋ ๊ฒฝ์ฐ์false
์ฌ์ฉ๋ฉ๋๋ค .
String usherResponse = person.getAge() > 18 ? "Everything is in order. Come in!" : "This film is not suitable for your age!";
์ด ์ฌ๋์ ๋์ด๊ฐ 18์ธ ์ด์์
๋๊น? ๊ทธ๋ ๋ค๋ฉด ๋ณ์๋ฅผ "๋ชจ๋ ๊ฒ์ด ์ ์์
๋๋ค. ๋ค์ด์ค์ธ์!"usherResponse
๋ก ์ค์ ํฉ๋๋ค. . ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋ณ์๋ฅผ "์ด ์ํ๋ ๋์ด์ ์ ํฉํ์ง ์์ต๋๋ค!"usherResponse
๋ก ์ค์ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ผํญ ์ฐ์ฐ์์ ๋
ผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ํ ? ๊ฒฐ๊ณผ 1 : ๊ฒฐ๊ณผ 2 
public static void main(String[] args) {
Person person = new Person(22);
String usherResponse = person.getAge() > 18 ? "Everything is in order. Come in!" : "This film is not suitable for your age!";
System.out.println(usherResponse);
}
๊ทธ๋์ ๋ฌด์์ ์ฌ์ฉํด์ผํฉ๋๊น? ๋ฌธ if-else
๋๋ ์ผํญ ์ฐ์ฐ์? ์ฑ๋ฅ๋ฉด์์๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ๋ ์ ํํ๊ฒ๋ ์์ ์ ์์ง๋ง ์ค์ํ์ง ์์ต๋๋ค. ์ฌ๊ธฐ์ ๊ฐ์ฅ ํฐ ๊ณ ๋ ค ์ฌํญ์ ์ฝ๋์ ๊ฐ๋
์ฑ์
๋๋ค. ์์ฑํ๋ ์ฝ๋๋ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ ๋ฟ๋ง ์๋๋ผ ์ฝ๊ธฐ ์ฌ์์ผ ํฉ๋๋ค . ๊ฒฐ๊ตญ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋จธ, ๋๋ฃ์ ์ํด "์์"๋ ์ ์์ต๋๋ค! ์ดํดํ๊ธฐ ์ด๋ ต๋ค๋ฉด ๊ทธ๋ค์ ์์
๊ณผ ๊ทํ์ ์์
์ด ๋ณต์กํด์ง ๊ฒ์
๋๋ค(๊ทธ๋ค์ ์ค๋ช
์ ์ํด 5๋ถ๋ง๋ค ๋ฌ๋ ค์ฌ ๊ฒ์
๋๋ค). ์ผ๋ฐ์ ์ธ ๊ถ์ฅ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์กฐ๊ฑด์ด ๊ฐ๋จํ๊ณ ์ฝ๊ฒ ํ์ธํ ์ ์๋ ๊ฒฝ์ฐ ํด๋ฅผ ๋ผ์น์ง ์๊ณ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๋์ ์๊ณผif-else
์ง์ (์ด๋ฏธ ๋ง์ ์ง์ ์ด ์์ ์ ์์). ๊ทธ๋ฌ๋ ์กฐ๊ฑด์ด ๋ณต์กํ๊ณ ์ฌ๋ฌ ๋จ๊ณ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค if-else
. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค.
String usherResponse = (person.getAge() > 18 && (person.hasTicket() || person.hasCoupon()) && !person.hasChild()) ? "Come in!" : "You can't come in!";
์ฌ๊ธฐ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ฆ์ ์ ์ ์์ต๋๋ค! ์ฝ๋๋ฅผ ์ฝ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ค์ ์ก์ต๋๋ค . ๊ทธ๋ฆฌ๊ณ ๋ณต์กํ ์กฐ๊ฑด ๋๋ฌธ์
๋๋ค.
- 18์ธ ์ด์์ด๊ณ ํฐ์ผ(๋๋ ์์ ์ด์ฉ๊ถ)์ด ์๊ณ ์ด๋ฆฐ ์๋ ๊ฐ ์์ผ๋ฉด ๋ค์ด์ฌ ์ ์์ต๋๋ค.
- ์กฐ๊ฑด์ ์ผ๋ถ๋ผ๋ ๊ฑฐ์ง์ด๋ฉด ๊ทธ๋ ํ ์ ์์ต๋๋ค.
if-else
. ์, ์ฐ๋ฆฌ ์ฝ๋๋ ๋ ์ปค์ง ๊ฒ์ด์ง๋ง ํจ์ฌ ๋ ์ฝ๊ธฐ ์ฝ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์ ์ ๋๋ฃ๋ค์ ์ด ์ฝ๋๋ฅผ ์์๋ฐ๋๋ค๋ฉด ์๋ฐ๋ฅ์ ๋ง์ฃผํ์ง ์์ ๊ฒ์
๋๋ค :) ๋ง์ง๋ง์ผ๋ก ๋น์ ์๊ฒ ์ข์ ๊ฒ์ ์ถ์ฒํ ์ ์์ต๋๋ค. ์์
์ค์ ์ฝ๋ ๊ฐ๋
์ฑ์ ๋ํด ๋ค๋ฃจ์์ต๋๋ค. ๊ณ ์ ์ด ๋ Robert Martin์ ์ ์ "Clean Code"๋์ด ์ฃผ์ ์ ์ ๋
ํฉ๋๋ค. 
๋ ์ฝ์ด๋ณด๊ธฐ: |
---|