👩‍💻 프로그래밍/🍕 C#

[C#] 지역 변수, 조건문(분기문), 반복문, 점프문

peewoong 2024. 5. 8. 22:30

🟩 지역변수

  • {} 코드 블록 내부에 선언
  • 코드 블록 외부에서는 사용 불가

 

🟩 조건문(분기문)

  • 특정 조건을 이용하여 코드를 다른 섹션으로 분기한다
  • if, if~else, if~else if~else
  • switch (case, break, default)
  • 중첩으로 사용가능

 

🟩 반복문

  • for(초기식, 조건식, 증감식)
  • while(조건식)
  • do ~ while(조건식) : 무조건 한 번은 실행된다.
  • 중첩 for
  • foreach
    • for문과 동일하게 작동
    • 차후에 배열, collection에서 사용

 

🟩 무한 반복

  • while(true)
  • for(;;)

 

🟩 점프문

  • 무한루프 제어
  • break
  • continue
  • goto

🌟 숫자 달리기

using System;
using System.Threading;

namespace _002_CheckPoint01 {
     internal class Program {
          static void Main(string[] args) {
               Random rnd = new Random();
               const string LINE = "----------------------------------";
               const int END_LINE = 30;
               const int DELAY_TIME = 200;
               int runA = 0, runB = 0, runC = 0, runD = 0;

               while (true) {
                    Thread.Sleep(DELAY_TIME); // 딜레이 (작을수록 빨라진다)
                    Console.Clear(); // 화면 지우기

                    ++runA;
                    ++runB;
                    ++runC;
                    ++runD;

                    int rndNum = rnd.Next(0, 4);  // 0 ~ 3

                    switch (rndNum) {
                         case 0:
                              ++runA;
                              break;
                         case 1:
                              ++runB;
                              break;
                         case 2:
                              ++runC;
                              break;
                         case 3:
                              ++runD;
                              break;
                         default:
                              break;
                    }

                    Console.WriteLine(LINE);

                    for (int i = 0; i < runA; ++i) {
                         Console.Write(" ");
                    }
                    Console.Write("1");

                    for(int i = END_LINE - runA; i >= 0; --i) {
                         Console.Write(" ");
                    }
                    Console.WriteLine("|");

                    for (int i = 0; i < runB; ++i) {
                         Console.Write(" ");
                    }
                    Console.Write("2");

                    for (int i = END_LINE - runB; i >= 0; --i) {
                         Console.Write(" ");
                    }
                    Console.WriteLine("|");

                    for (int i = 0; i < runC; ++i) {
                         Console.Write(" ");
                    }
                    Console.Write("3");

                    for (int i = END_LINE - runC; i >= 0; --i) {
                         Console.Write(" ");
                    }
                    Console.WriteLine("|");

                    for (int i = 0; i < runD; ++i) {
                         Console.Write(" ");
                    }
                    Console.Write("4");

                    for (int i = END_LINE - runD; i >= 0; --i) {
                         Console.Write(" ");
                    }
                    Console.WriteLine("|");

                    Console.WriteLine(LINE);

                    if(runA >= END_LINE || runB >= END_LINE || runC >= END_LINE || runD >= END_LINE) {
                         int runNum = 0;
                         string strResult = "결과 :     {0} 선수 우승 !!!! ";

                         if(runA >= END_LINE) {
                              runNum = 1;
                         }
                         else if(runB >= END_LINE) {
                              runNum = 2;
                         } 
                         else if (runB >= END_LINE) {
                              runNum = 3;
                         } 
                         else {
                              runNum = 4;
                         }

                         Console.WriteLine(strResult, runNum);

                         Console.Write("다시하려면 0번 입력 : ");
                         if (int.Parse(Console.ReadLine()) == 0) {
                              runA = 0;
                              runB = 0;
                              runC = 0;
                              runD = 0;
                         } 
                         else {
                              break;
                         }

                    }
               }
          }
     }
}