0309 문(Statement)

2021. 3. 9. 16:58C#/수업내용

 

문은 프로그램 명령, 순서대로 실행된다.

프로그램 문이 실행되는 순서를 '제어흐름' 또는 '실행 흐름'

제어 흐름은 프로그램이 런타임 시 수신하는 입력에 대응하는 방식에 따라 프로그램 실행마다 달라진다.

{시작

  {중첩 블록

  }

}끝

 

 

선택문: if-else, switch

  • if-else: bool 의 값에 따라서 선택하는 문
static void Main(string[] args)
        {
            int heroHp = 10;
            string heroName = "홍길동";
            heroHp -= 100;
            Console.WriteLine("name: {0}, hp{1}", heroName, heroHp);
            
            if (heroHp <= 0) {
                Console.WriteLine("{0}님이 사망했습니다.", heroName);
                heroHp = 0;
                Console.WriteLine("name: {0}, hp: {1}", heroName, heroHp);
                    };

        }

static void Main(string[] args)
        {
            int reinforcePercent = 13;
            Random rand = new Random();
            int num = rand.Next(0, 101);
            if (num > reinforcePercent)
            {
                //강화 성공
            }
            else { 
                //강화 실패
            }
        }
int reinforcePercent = 13;
            Random rand = new Random();
            int num = rand.Next(0, 101);
            int gold = 1000;


            if (num > reinforcePercent)
            {
                //강화 성공
                if (gold > 2000) 
                { 
                    //돈이 있다면
                }
            }
            else
            {
                //강화 실패
            }
{
            int reinforcePercent = 13;
            Random rand = new Random();
            int num = rand.Next(0, 101);
            int gold = 1000;


            if (num > reinforcePercent&&gold>20000)
            {
                //강화 성공+돈이 있다면
            }
            else
            {
                //강화 실패
            }
        }

같은 결과 도출

 

 

 

  • 중첩 해서 사용 가능한 if-else (nested if-else)
string fruitName = "샤인머스캣";
            if (fruitName == "바나나")
            {
            }
            else if (fruitName == "복숭아")
            {
            }
            else if (fruitName == "수박")
            {
            }
            else if (fruitName == "포도")
            {
            }
            else 
            { 
            };

 

 

 

  • switch : 조건문을 이용하여 실행할 switch 섹션 하나를 선택

단일식이 세 개 이상의 조건문일시 else if 보다 switch 문을 사용하는 경우가 많다. (내용은 같음)

위에서 순차적으로 비교하면서 내려간다.

string fruitName = "샤인머스켓";
            switch(fruitName){
                case "포도":
                    Console.WriteLine("포도입니다.");
                    break;
                case "바나나":
                    Console.WriteLine("바나나입니다.");
                    break;
                case "수박":
                    Console.WriteLine("사과입니다.");
                    break;
                default:
                    Console.WriteLine("{0}입니다.", fruitName);
                    break;

            }

 

 

 

 

 


 

 

반복문 : for,while,foreach

 

  • for문 : 지정된 bool 식이 true로 계산되는 동안 문을 반복 실행.
    • for (initializer; condition; iterator) {body}
    • initializer 한 번만 실행
    • iterator 본문이 false가 될 때까지 루프되는 부분
static void Main(string[] args)
        {
            for (int i = 0; i < 5; i++) {
                Console.WriteLine("줄넘기를 {0}회 했습니다.", i+1);

            }
            //줄넘기를 1회 했습니다.
            //줄넘기를 2회 했습니다.
            //줄넘기를 3회 했습니다.
            //줄넘기를 4회 했습니다.
            //줄넘기를 5회 했습니다.
        }

 

int count = 0;
            for (int i = 0; i < 5; i++) {
                Console.WriteLine("줄넘기를 {0}회 했습니다.", i+1);
                count++;
                
            }
            Console.WriteLine("총 줄넘기 한 휫수: {0}", count);

 

  • while 문: while 안에 있는 조건문이 실행될 동안 조건식이 진행된다.
int n = 0;
            while (n<5) {
                Console.WriteLine(n);
                n++;

 

  • dowhile 문: do의 조건문이 true일 경우 값을 확인하고 다시 위로 올라가 조건문 확인, false가 될 때까지 반복한다.
int n = 0;
            do
            {
                Console.WriteLine(n);
                n++;
            }
            while (n < 5);

 

 

 

  • foreach: 배열에서 각자의 요소들 가져오는 용도
string[] names = new string[3] { "홍길동", "임꺽정", "장길산" };
            foreach (string name in names) 
            {
                Console.WriteLine(name);
            }

 

 

 

 


 

 

 

점프문: break, continue, goto, return

 

  • break: 배치된 지점에서 가장 가까운 바깥쪽 루프 또는 switch문을 종료, 제어는 종료된 문의 뒤로 전달
for (int i = 1; i <= 100; i++) 
            {
                if (i == 5) {
                    break;
                }
                Console.WriteLine(i);
            }

 

 

  • continue: 아랫쪽의 반복문을 실행하지 않고 가장 가까운 반복문을 반복한다.
for (int i = 1; i <= 10; i++) 
            {
                if (i < 9) {
                    continue;
                }
                Console.WriteLine(i);
            }

 

  • return : 메서드(기능)의 실행을 종료하고 컨트롤을 호출

'C# > 수업내용' 카테고리의 다른 글

0310 if/while/switch statement복습  (0) 2021.03.10
0310 switch 문으로 캐릭터 생성 예시  (0) 2021.03.10
0309 비트 연산자&삼항연산자  (0) 2021.03.09
0309 연산자  (0) 2021.03.09
0309 데이터 타입의 변환  (0) 2021.03.09