조건문은 명령문의 실행을 논리적 결정하에 선택적으로 실행하도록 한다.

1) if문 : 한 두가지 이상의 조건을 체크할때 실행한다. 하지만 두가지 이상일 때는
switch문을 실행하는 것이 좋다.

- 구조식
if( 검사식 ){
    명령문 //검사식을 만족하면 실행
}

검사식의 조건에 참이냐 거짓이냐의 여부가 명령문의 실행 여부를 관리하게 된다.

추가로 else라는 구문을 더해서 위의 검사식에 만족(true)를 못하면 다음 코드블럭의 명령문을 실행하게 한다.
if( 검사식 ){
    명령문
}else{
  
명령문 //위의 검사식을 만족 못할 시 실행
}


또는 else에 if구문을 추가해서 다시한번 검사를 하기도 한다.
if( 검사식1 ){
    명령문
}else if( 검사식2 ){
  
명령문 //위의 검사식1을 만족 못하고 검사식2를 만족할 때만 실행
}
위의 식에서 검사식1과 검사식2를 모두 만족(true)못하면 두명령문 모두 실행하지 않는다.

* 효율적인 조건문 체크
else if를 사용하여 첫번째 검사식이 만족하면 다음 검사식은 실행하지 않는다.
따라서 상호 베타적인 조건식에서는 여러개의 if문을 사용하기 보다는 else if 를 사용하는 것이
효율적이다.


마지막으로 if구문과 else if 그리고 esle문을 사용한다면 else로 마무리 하여야 문법상 오류가 없다.
if( 검사식1 ){
    명령문
}else if( 검사식2 ){
  
명령문
}else{
  명령문
}




2) switch문 : 여러개의 조건을 체크하기 위해서 사용한다.
 if문이나 else if를 추가해서 사용하는 것보다는 비교적 읽기 쉽고 간단해진다.

- 구조식
switch( 비교대상){
 
  case 검사식:
             명령문
    case 검사식:
             명령문
    case 검사식:
             명령문
   
default:
             명령문
}
비교대상에 사용된 변수나 값이 case문의 검사식에 만족하면 해당 명령문을 실행시킨다.


* switch문은 만족된 case가 실행되면 switch문 본체에서 현재 만족된 case문 하단의 모든 case문이 실행하게 된다(default 포함)
switch( 비교대상){
 
  case 검사식:
             trace(1)
    case 검사식:  -> 만족
             trace(2)
    case 검사식:
             trace(3)
   
default:
             trace(4)

}
두번째 case에서 만족하게 되면 하위 모든 case가 실행하게 된다.
따라서 이를 방지하기 위해서는 break를 사용하여 실행을 중지하여야 한다. 주로 break는 마지막 실행문에서는 사용하지 않는다. 검사식이 마지막에서 실행할 때에는 이미 하위의 case가 없으므로 생략해 주는 것이 좋다.


가령 변수 a="flash"라고 할때 아래 명령문중에서 trace("플래시")가 실행하게 된다.
var a:String = "flash"
switch(a) {
    case "100" :
           trace("문자 100");
           break;
   
case "flash" :
           trace("플래시");
           break;
    case "플래시" :
           trace("flash");
           break;
    default :
           trace("다시 시도하여 주세요!");
}
위에서 변수 a의 값을 비교대상으로 지정하고 그 값을 각 case문에서 비교하게된다.
변수a의 값은 "flash"이므로 case "flash"에서 만족하게 되어 빨간색 부분이 실행하게 된다.


3) 삼항연산자 : 한 문장에서 조건 체크와 명령문을 만들어 사용한다.
변수명 = 조건식 ? 실행문1 : 실행문2;
조건식에 만족하면 " : " 왼쪽의 실행문1이 실행하고 만족하지 않으면 실행문2가 실행한다.

var a:Number = 10;
a == 10 ? trace("변수 a는 10이다") : trace("변수 a는 10이 아니다")
위와 같이 코딩하였을 때 a의 값은 10이므로 앞의 조건식을 만족하여 좌항(빨간색)의 명령문이 실행한다.

Posted by 버터백통