본문 바로가기
PROGRAMING📚/C#📑

C#_ 제어문

Ta이니 2019. 2. 21.
728x90
반응형

//제어문//

 

프로그램의 흐름을 바꾸고자 할 때, 사용하는 키워드를 제어문이라고 한다. 

제어문에는 <if> <for> <foreach> <while> <break> <continue> 등 이 존재한다.

 

//if 문//

 

조건에 따라 처리를 수행 할때 사용하고, 조건에는 비교 연산자나 논리 연산자를 사용하여 조건식을 작성한다. 

 

<if>는 영어의 의미 그대로  "만약 ~라면" 이라는 의미를 가진다. 

그리고 <else>는 <if>의 조건에 해당하지 않은 모든 것들은 <else>의 조건에 해당하게 된다. (= 조건에 무관되는 모든 조건들은 <else> )

 

 

다음 코드를 보면 

 

 

 

만약에 a를 2로 나누 었을 때의 나머지 가 0인 경우에는 "짝수 입니다"가 출력되고 나머지의 경우에는 홀수로 출력 되게 한다.

<if>조건에 반대되는 모든 경우에는, 다음 블럭으로 넘어가 "홀수 입니다" 출력된다.

즉, <if>문 안에서 조건이 일치할 경우, <if>문에 들어가 처리를 하고 조건이 일치하지 않으면 다음 블럭으로 넘어가서 결과를 처리한다. 

 

위에는 결과가 두가지 밖에 필요하지 않기 때문에 <if>,<else> 두 가지로 코드가 이루어져 있고 <else if>는 3가지 이상의 조건이 필요할 때 사용된다.

 

다음은 <else if>를 이용하여 90점 이상의 점수를 받은 학생만 합격인 코드를 작성해 보았다.

 

 

<else if>는 위와 같이 조건을 추가 할 경우에 사용된다. <if>문에서 a =50이라는 조건과 맞지 않기 때문에 다음 블럭인 <else if>문의 조건으로 들어가 다음 조건이 성립하는지 확인한다. 이런식으로 계속 하여 조건이 일치할 때 까지 다음 블럭으로 들어가 결과를 처리한다.

 

<if>와 <else>는 한 조건문 안에 한개 밖에 사용하지 못한다. 하지만 <else if>는 여러개를 사용해도 무관하다.

<else>는 작성을 해줘도 되고 안 해줘도 딱히오류가 발생하지 않는다. 예외의 결과가 출력될 경우에는 사용해 주어야한다. 

 

* <If>는 조건문의 시작이라고 보면된다. <if>를 두 번 사용하게 되면, 두 개의 <if>문은 다른 조건문으로 생성되 검사를 한번더 하게 된다. *

 

//for 문//

 

프로그램을 반복처리를 효율적으로 하기 위해서 사용하는 제어문 중에 하나이다. 

int i=0; //카운터

for ( i =0;  i <3 ;  i++)

{

//처리

}

 

*조건 선언 구간*

 

  i =0;(초기식)  i <3 ; (조건식) i++(변화식)

 

 초기식 : 카운터의 초기값을 설정해 준다.

 조건식 : 반복의 조건을 작성한다.

 변화식 : 반복문이 한 번 실행 될 때마다 수행하는 식 

 

*이중루프*

 <for>문을 2개를 사용하여 반복문 안에 반복문을 삽입하는 것을 "이중루프" 라고 한다.

 

다음은 <for>문을 이용하여 구구단을 만들어 보았다.

 

//구구단이 세로로 출력되도록 

 

//구구단이 가로로 출력되도록

 

<for>문의 초기식과 조건식을 조금만 건들이더라도 결과가 다르게 나오는걸 확인 할 수 있다.

 

 

//foreach 문//

배열과 같은 여러 데이터 모음의 각 요소를 처음부터 끝까지 한 번씩 호출하여 처리하기 위해서 사용하는 제어문이다.

 

 <선언구>

foreach((int) (a) in (nums)); //foreach((요소의 형) (요소를 받는 변수명) in (배열명));

 

 * <foreach>문을 사용하여, num이라는 배열 안에 들어있는 값들을 간단하게 출력 *

 

 

//while문//

 

조건이 성립되어 있는 동안에는 처리를 반복 실행하는 제어문이다.  

<for>문 과는 달리 카운터가 없다는 것이 특징이고, 두 개의 차이점이다. (예) 키보드에서 입력 등

 

 

 * do ~ while 문 *

<while>문과 같이 반복을 싱행하는 제어문이다. <do~while>은 <while>과 달리 조건이 아래에 있기 때문에 반드시 한번은 처리하여 실행을 합니다.

<선언>

 

** 반복 제어문에서 실수로 항상 조건이 성립(참)하도록 지정하면 계속 반복 하게 되기 때문에 이 점을 조심해야한다. (= 무한루프 )** 

 

 

//break와 continue//

 

반복문에서 흐름을 바꿀때 사용하는 제어문이다.

 

<for>문이나 <while>문 등의 반복을 실행 도중에 중단하려면 <break>문을 사용한다. <break>문을 만나면, 가장 가까운 블록의 끝으로 실행을 넘겨준다.

즉 , <break>는 반복을 강제로 중단하기 위해서 사용되는 제어문이다.

 

반대로 <continue>문은 반복을 정지하고, 조건으로 이동한 다음 조건이 참이면 처리를 다시 실행하는 제어문이다.

 

 

(예) 

<break>문

 //무한 루프 안에서 조건과 일치 하였을 때, 무한 루프를 벗어나는 코드

 

<continue>문

 //홀수 일 경우, 값을 출력하지 않고 루프의 시작부분으로 돌아가도록 하는 코드 

 

//switch문//

<switch>문은 <if>문 과 동작이 비슷하다. 식에는 값이나 식을 설정할 수 있고, 이 결과 값과 대응하는 <case>문을 실행한다.

<case>는 여러개를 만들수 있고, 식의 값이 어느 값도 일치 하지 않으면 <default>를 진행한다. 

 

<선언>

switch(식){

case (식 1): // "식 = 값 1" 일 때 처리한다.

break;

case (식 2):// "식 = 값 2" 일 때 처리한다.

break;

case (식 3):// "식 = 값 3" 일 때 처리한다.

break;

default: // 식의 값이 어느 값도 아닐때, 처리

break;

}

 

* <switch>문의 식에는 char/byte/short/int 형의 변수를 사용할 수 있지만, 그 외의 경우에는 <if>문을 사용해야한다.

 

(불가능 예)

  string a = "Hello";

            switch (a)

            {

                case "Hello":

                    Console.WriteLine(a);

                    break;

            }

 
(가능 예)
string a = "Hello";
           
            if(a == "Hello")
            {
                Console.WriteLine(a);
            }
            else if{
                Console.WriteLine("WRONG");
            }
 

 

728x90
반응형

'PROGRAMING📚 > C#📑' 카테고리의 다른 글

C#_클래스의 응용  (0) 2019.02.23
C#_클래스  (0) 2019.02.22
C#_데이터형  (0) 2019.02.14
C#_연산자  (0) 2019.02.14
C#_프로그래밍의 기본 구조  (0) 2019.02.14

댓글