본문 바로가기

프로그램/유니티 C# 강좌

[유니티 C# 강좌] 8. 문(Statement), 조건문(Conditional Statement)

728x90
반응형

1. 문

문(Statement)이란 프로그램 작성하는 처리의 단위입니다.

 

문은 크게 2 종류가 있습니다.

첫번째는 ;으로 끝나는 코드 한 행을 문이라고 합니다.

 

예제 : 문 1

int i1; // 선언문
i1 = 1; // 대입문

 

 

두번째 문은 {}(중괄호)로 묶어 있는 행의 코드입니다.

 

예제 : 문 2

int i1 = 1;

if(i1 == 1) // {}으로 묶인 문
{
    int i2 = 2;
    int i3 = 3;
}

 

문은 그 쓰임에 따라서 선언문, 식문, 조건문, 반복문, 점프문, 예외 처리문, yeild return 문, using 문, 레이블 문 등이 있습니다.

 

내용

예제

선언문

변수나 상수 정의

int x;

const float f1 = 1.1f

식문

식으로 값 계산

flaot x = a + b;

조건문

if-else 문, switch 문

 

반복문

for 문, foreach 문, while 문, do-while 문

 

점프문

break 문, continue 문, goto 문

 

예외 처리문

throw 문, try-catch 문, try-finally 문, try-catch-finally 문

 

yeild return 문

처리가 yeild return 문을 만나면, 코드가 이 위치에서 유지 됨.

 

using 문

using 지시문, using 별명 지시문, using 문

 

레이블 문

레이블을 붙여, goto 문에서 이용.

 

 

 

2. 조건문

 

조건문이란 특정 조건에서 특정 코드를 실행시키는 프로그램 명령입니다.

 

 

2.1 if-else 문

 

2.1.1 if 문

 

if 문은 조건식이 참일 경우 뒤에 있는 식을 실행시키는 문입니다.

 

기본 형태
if (조건식)
{
    조건이-참일-경우-실행되는-식;
}

 

using UnityEngine; 

public class IfStatementExample : MonoBehaviour 
{ 
    void Start() 
    { 
        int i1 = 1, i2 = 2; 

        if (i1 < i2) 
        { 
            Debug.Log("참이네 ㅋㅋ"); // 출력 : 참이네 ㅋㅋ  
        } 
    } 
}

 

 

2.1.2 if-else 문

 

if-else 문은 if 문과 else 문으로 구성되어 있습니다.

if문 조건이 참일 경우 뒤에 있는 식을 실행시키고, else문에는 거짓일 경우 뒤에 있는 식을 실행시킵니다.

 

기본 형태
if (조건식)
{
    조건이-참일-경우-실행되는-식;
}

else
{
    조건이-거짓일-경우-실행되는-식;
}

 

using UnityEngine; 

public class IfElseStatementExample : MonoBehaviour 
{ 
    void Start() 
    { 
        int i1 = 1, i2 = 2; 

        if (i1 > i2) 
        { 
            Debug.Log("참이네 ㅋㅋ"); 
        } 

        else 
        { 
            Debug.Log("거짓이네 ㅋㅋ"); // 출력 : 거짓이네 ㅋㅋ   
        } 
    } 
}

 

 

2.1.3 if-elseif 문

 

if-elseif 문은 if 문과 elseif 문으로 구성되어 있습니다.

 

if-elseif 문은 위에서부터 순차적으로 진행됩니다.

if 문에서 먼저 조건식을 검사 한 뒤 참이면 if 문 뒤에 있는 식을 실행하고, 아니면 elseif 문 조건식을 검사하여 참이면 if 문 뒤에 있는 식을 실행합니다.

 

또한 elseif 문은 중첩해서 사용 가능합니다.

 

여기에 마지막에 else 문을 사용해도 됩니다.

 

기본 형태

if (조건식1)
{
    조건식1이-참일-경우-실행되는-식;
}    

else if (조건식2)
{
    조건식1이-거짓이고-조건식2가-참일-경우-실행되는-식;
}
       
else if (조건식3// 중첩 사용 가능
{
    조건식1,-조건식2가-거짓이고,-조건식3이-참일-경우-실행되는-식;
}

else
{
    조건식1,-조건식2,-조건식3이-거짓일-때-실행되는-식;
}

 

using UnityEngine; 

public class IfElseifElseStatementExample : MonoBehaviour 
{ 
    void Start() 
    { 
        string s = "GG"; 

        if (s.Equals("Gg")) 
        { 
            Debug.Log("조건식1이 참이네"); 
        } 

        else if (s.Equals("gG")) 
        { 
            Debug.Log("조건식2가 참이네"); 
        } 

        else if (s.Equals("GG")) 
        { 
            Debug.Log("조건식3이 참이네"); // 출력 : 조건식3이 참이네  
        } 

        else 
        { 
            Debug.Log("거짓이네"); 
        } 
    } 
}

 

 

2.2 switch문

 

switch문은 조건값이 여러 가지 값일 경우, 각 값 별로 다른 식을 실행하는 조건문입니다.

 

기본 형태

switch (조건값)
{
    case 값1 :
        식1;
        break;

    case 값2 :
        식2;
        break;
...   
    default :
        식n;
        break; 
}

 

  • switch (조건값)은 case에서 비교될 값을 넣어 줍니다. 
  • case 값들은 조건값과 비교를 하는 값들입니다.
  • 식들은 조건이 맞을 경우 실행되는 값들입니다.
  • break는 식을 벗어나게 해주는 키워드입니다.
  • default문은 위 case들에 값이 없을 때 실행됩니다. default 값은 생략 가능합니다만은 저는 로그를 찍는데 사용됩니다. 가끔 실수로 값이 잘 못 들어가는 것을 대비하기 위해서입니다.

 

만약 값1과 값2가 같은 식을 수행하게 되면, 식1과 break를  생략하고 식을 바로 적어주면 됩니다.

 

일반적인 case

break 생략

case 값1 :
    식1;
    break;

case 값2 :
    식1;
    break;
case 값1 :  
case 값2 : 
    식1; 
    break;

 

using UnityEngine; 

public class SwitchStatementExample : MonoBehaviour 
{ 
    enum EAvengers { IronMan, SpiderMan, Hulk }; 

    void Start() 
    { 
        EAvengers avengers = EAvengers.IronMan; 

        switch (avengers) 
        { 
            case EAvengers.IronMan: 
                Debug.Log("Iron Man"); // 출력 : Iron Man 
                break; 

            case EAvengers.SpiderMan: 
                Debug.Log("SpiderMan"); 
                break; 

            case EAvengers.Hulk: 
                Debug.Log("Hulk"); 
                break; 

            default: 
                Debug.Log("Avengers"); 
                break; 
        } 
    } 
}

 

728x90
반응형