C# 초보 캠프

Day 2

콘솔 입력과 조건문

C# 프로그램에서 콘솔로부터 데이타를 입력받기 위하여 Console.ReadLine() 을 사용한다 (다른 방법도 있음). 입력 받은 값에 따라 서로 다른 출력을 하기 위해 if 조건문을 사용할 수 있다. if 조건문은 지정한 조건을 만족할 때 특정 문장 혹은 블럭(if 블력)을 실행하는 것이다.

실습

치즈버거, 햄버거, 치킨버거, 베지버거 등 4개의 메뉴를 보여주고 사용자로부터 메뉴를 선택하게 하고, 사용자가 특정 메뉴를 입력하면, 해당 버거의 가격을 출력하는 프로그램을 작성해 보자. 이 콘솔 프로그램은 무한히 반복되게 작성하는데, 입력시 Q를 치면 루프를 빠져나오게 한다.

  using System;

  namespace Day2
  {
      class Program
      {
          static void Main(string[] args)
          {
              for (;;)
              {
                  Console.WriteLine();
                  Console.WriteLine("********* Menu *********");
                  Console.WriteLine();
                  Console.WriteLine("1. Cheeseburger");
                  Console.WriteLine("2. Hamburger");
                  Console.WriteLine("3. Chicken Burger");
                  Console.WriteLine("4. Veggie Burger");
                  Console.WriteLine();

                  Console.Write("Your Choice (Q to Quit) ==> ");
                  string answer = Console.ReadLine();

                  Console.WriteLine();

                  if (answer == "Q" || answer == "q")
                  {
                      break;
                  }

                  if (answer == "1")
                  {
                      Console.WriteLine("Cheeseburger: $7.99");
                  }
                  else if (answer == "2")
                  {
                      Console.WriteLine("Hamburger: $6.99");
                  }
                  else if (answer == "3")
                  {
                      Console.WriteLine("Chicken Burger: $6.50");
                  }
                  else if (answer == "4")
                  {
                      Console.WriteLine("Veggie Burger: $6.00");
                  }
                  else
                  {
                      Console.WriteLine("Error: Invalid input");
                  }
              }
          }
      }
  }
  • Console.ReadLine() 는 한 라인의 문자열을 리턴한다
  • for(;;) 은 특정한 루프 조건이 없으므로 무한히 반복되는 무한루프이다
  • 문자열이 같은지 비교하기 위해 if (answer == "1") 와 같이 == (Equal 사인 두개!) 를 사용한다
  • if 블럭이 거짓이면 else if 혹은 else로 이동한다

조건문: 숫자 점수를 A~F 로 변환

if 조건문은 지정한 조건식이 참(true)일때 if 블럭을 실행하고, 거짓이면 else 문으로 (만약 있으면) 이동한다. else문에 else if 처럼 또다른 if 조건문이 있으면 해당 if 조건식을 다시 평가한다. 이러한 방식으로 if (조건식1).. else if (조건식2) ... else if (조건식3) ... 등과 같이 여러 조건을 체크할 수 있다.

실습

숫자 점수를 콘솔로부터 읽어 들여 이를 A,B,C,D,F 로 변환하는 프로그램은 작성한다. if 조건식에서 90점 이상이면 A, 80점 이상이면 B, ... 등과 같이 변환한다.

  using System;

  namespace Day2
  {
      class Program
      {
          static void Main(string[] args)
          {
              for (;;)
              {
                  Console.Write("Enter Score: ");
                  string answer = Console.ReadLine();

                  if (answer == "")
                  {
                      break;
                  }

                  int score = int.Parse(answer);

                  if (score >= 90)
                  {
                      Console.WriteLine("Grade A");
                  }
                  else if (score >= 80)
                  {
                      Console.WriteLine("Grade B");
                  }
                  else if (score >= 70)
                  {
                      Console.WriteLine("Grade C");
                  }
                  else if (score >= 60)
                  {
                      Console.WriteLine("Grade D");
                  }
                  else
                  {
                      Console.WriteLine("Grade F");
                  }
              }
          }
      }
  }
  • for(;;) 은 특정한 루프 조건이 없으므로 무한히 반복되는 무한루프이다
  • 문자열을 정수로 변환하기 위해서는 int.Parse() 를 사용한다
  • 숫자 점수 비교시 먼저 높은 점수부터 비교해서 90점 이상인 것은 A로 표기한다. 이때 else if 를 쓰면 90점 미만인 경우를 가정하게 된다.


본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.