본문 바로가기
Programming/JAVA

5-1 if~else

by CGS 2018. 9. 16.

if~else 문은 특정 조건이 만족될 때에만 실행하고 싶을때 사용합니다.


예를 들면


어떤 값일때 어떠한 명령을 수행시키고 싶다하면


if문의 괄호안에 그 조건을 넣으면 됩니다.



public class IEBasic {


public static void main(String[] args) {

// TODO Auto-generated method stub

if(true) {

System.out.println("if & true");

}

if(false) {

System.out.println("if~else & true");

}

else {

System.out.println("if~else & false");

}

}


}


이 코드의 실행 결과는


if & true

if~else & false


이렇게 나오게 됩니다.

조건이 참일때만 if의 영역 안에 선언된 명령을 수행하게 됩니다.

따라서 중간에 if(false)의 영역은 실행되지 않고 if(true)와 else 영역의 명령만 실행을 했습니다.

또한 if~else문은 중첩해서 사용할 수 있습니다.


public class IEReit {

public static void main(String[] args) {
// TODO Auto-generated method stub
 
int num=120;
if(num<0) {
System.out.println("0 미만");
} else {
if(num<100) {
System.out.println("0이상 100미만");
} else {
System.out.println("100이상");
}
}
}

}

num에 120이 저장이 되어있기 때문에

첫번째 if문에서 조건을 만족하지 않으므로 else로 넘어가게 됩니다.

else에서는 if~else가 또 있는데,

if의 조건에 맞지 않으므로 else로 넘어가고 "100이상"이 출력됩니다.


if~else와 유사한 성격의 조건 연산자도 있습니다.


public class CondOp {

public static void main(String[] args) {
// TODO Auto-generated method stub
int num1 = 50, num2 = 100;
int big, diff;
big = (num1>num2) ? num1 : num2;
System.out.println(big);
diff = (num1>num2)? num1-num2 : num2-num1;
System.out.println(diff);
}

}


100

50


이 연산자는 true or false? 숫자1 : 숫자2

같은 구조를 가지고 있습니다.

? 기호의 왼편에 true가 있으면 : 기호의 왼편에 있는 숫자가 반환,
? 기호의 왼편에 false가 있으면 기호의 오른편에 있는 숫자가 반환되는 구조를 가지고있습니다.

즉, big = (num1>num2) ? num1 : num2; 에서 num1>num2가 false이기 때문에 num2의 값이 big에 들어가게 됩니다.