C# IF, Switch, For, While 반복문 [예제]

⚡ 스마트 요약

C#의 조건문과 반복문은 논리에 따라 코드 블록을 실행하거나 반복함으로써 프로그램의 흐름을 제어합니다. if, switch, while, for 문을 사용하면 프로그램이 효율적으로 결정을 내리고 반복할 수 있습니다.

  • 🔀 흐름 제어: 조건문은 실행 순서를 변경하여 프로그램이 논리에 맞는 문장만 실행하도록 합니다.
  • 조건문: if 문은 부울 표현식을 평가하여 참일 때는 한 블록을 실행하고 거짓일 때는 다른 블록을 실행합니다.
  • 🔢 스위치 문: switch 문은 하나의 값을 여러 case 레이블과 비교하고, 일치하는 값이 발견되면 break를 사용하여 종료합니다.
  • 🔁 While 루프: while 루프는 조건이 참인 동안 일련의 명령문을 반복 실행하므로 반복 횟수가 정해져 있지 않아도 사용할 수 있습니다.
  • 🔄 루프: for 루프는 카운터를 초기화하고, 테스트하고, 증가시키는 작업을 한 줄로 수행하므로, 반복 횟수를 알고 있을 때 이상적입니다.
  • 🤖 AI 지원: GitHub Copilot은 조건문, 문, 반복문 논리를 작성하는 반면, ML.NET은 동일한 조건을 재사용하여 머신러닝 파이프라인을 분기합니다.

C# 조건문

흐름 제어 및 조건문

흐름 제어 및 조건문은 모든 프로그래밍 언어에서 프로그램 흐름을 변경하는 데 사용할 수 있습니다.

예를 들어, 특정 논리에 따라 특정 명령 집합만 실행하려는 경우 흐름 제어와 조건문이 유용합니다.

C#에서 사용할 수 있는 다양한 문을 살펴보면서 더 잘 이해할 수 있을 것입니다.

아래 코드는 모두 Program.cs 파일로 만들어졌으니 참고하세요.

1) If 문

if 문은 일련의 명령들을 실행하기 전에 부울 표현식을 평가하는 데 사용됩니다. 표현식이 참으로 평가되면 하나의 명령 집합이 실행되고, 그렇지 않으면 다른 명령 집합이 실행됩니다.

아래 예시에서는 'value'라는 변수의 값을 비교합니다. 변수 값이 10보다 작으면 한 문장을 실행하고, 10 이상이면 다른 문장을 실행합니다.

If 문

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program 
 {
  static void Main(string[] args) 
  {
   Int32 value = 11;
   
   if(value<10)
   {
    Console.WriteLine("Value is less than 10");
   }
   else
   {
    Console.WriteLine("Value is greater than 10");
   }
    Console.ReadKey();
  }
 }
}

Code 설명:-

  1. 먼저 value라는 변수를 정의하고 값을 11로 설정합니다.
  2. 그런 다음 'if' 문을 사용하여 값이 변수의 10보다 작은지 확인합니다. 결과는 참이거나 거짓일 것입니다.
  3. if 조건이 true로 평가되면 "값이 10보다 작습니다"라는 메시지를 콘솔에 보냅니다.
  4. if 조건이 false로 평가되면 "값이 10보다 큼"이라는 메시지를 콘솔에 보냅니다.

위 코드를 올바르게 입력하여 프로그램이 성공적으로 실행되면 다음과 같은 출력이 표시됩니다.

출력:

If 문

'if' 문이 false로 평가되었음을 분명히 알 수 있습니다. 따라서 "값이 10보다 큼"이라는 메시지가 콘솔로 전송되었습니다.

2) 스위치 문

switch 문은 'if' 문이 향상된 것입니다. 한 번에 평가해야 하는 표현식이 여러 개 있는 경우 'if' 문을 여러 개 작성하는 것이 문제가 됩니다.

switch 문은 표현식을 평가하고 표현식 결과에 따라 다른 명령문을 실행하는 데 사용됩니다. 한 조건이 true로 평가되지 않으면 switch 문은 다음 조건으로 이동합니다.

아래 예시를 통해 어떻게 작동하는지 살펴보겠습니다. 여기에서도 'value'라는 변수의 값을 비교하고 있습니다. 값이 1인지, 2인지, 아니면 전혀 다른 값인지 확인합니다.

Switch 문

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=11;
   switch(value) 
   {
     case 1: Console.WriteLine("Value is 1");	
     break;
     case 2: Console.WriteLine("Value is 2");
     break;
     default: Console.WriteLine("value is different");
     break;
   }
  }
 }
}

Code 설명:-

  1. 먼저 'value'라는 변수를 정의하고 값을 11로 설정합니다.
  2. 그런 다음 'switch' 문을 사용하여 'value' 변수의 값을 확인합니다.
  3. Case 문은 다양한 조건을 설정하는 데 사용됩니다. 조건에 따라 일련의 명령문을 실행할 수 있습니다. switch 문에는 여러 개의 Case 조건이 있을 수 있습니다. 첫 번째 Case 문은 변수 값이 1인지 확인합니다.
  4. 첫 번째 Case 문이 true이면 "값은 1입니다"라는 메시지가 콘솔에 기록됩니다.
  5. break 문은 조건이 true일 때 전체 switch 문을 중단하는 데 사용됩니다.
  6. 기본 조건은 특수 조건입니다. 이는 케이스 표현식이 true로 평가되지 않으면 기본 조건에 대한 명령문 세트를 실행한다는 의미입니다.

위의 코드를 올바르게 입력하고 프로그램을 성공적으로 실행하면 다음과 같은 출력이 표시됩니다. 조건이 충족되지 않으므로 출력은 기본값 "Value is different"를 인쇄합니다.

출력:

Switch 문

3) while 루프

while 루프는 반복 목적으로 사용됩니다. 특정 횟수만큼 특정 명령문 세트를 반복하려는 경우 while 루프가 사용된다고 가정합니다.

아래 예에서는 while 문을 사용하여 변수 'i'의 값을 표시합니다. while 문을 사용하여 값을 3번 표시합니다.

While 루프

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=3,i=0;
   
   while(i<value)
   {
    Console.WriteLine(i);
    i=i+1;
   }
    Console.ReadKey(); 
  }
 }
}

Code 설명:-

  1. 두 개의 정수 변수 하나는 값이고 다른 하나는 'i'로 정의됩니다. value 변수는 while 문을 반복해야 하는 상한으로 사용됩니다. 그리고 'i'는 반복 중에 처리될 변수입니다.
  2. while 문에서는 'i' 값이 상한값과 비교하여 지속적으로 확인됩니다.
  3. 여기서는 'i' 값을 콘솔에 표시합니다. 또한 'i'의 값을 증가시킵니다.

위 코드를 올바르게 입력하여 프로그램이 성공적으로 실행되면 다음과 같은 출력이 표시됩니다.

출력:

While 루프

여기서 while 문이 3번 실행되고 동시에 증가하는 것을 볼 수 있습니다. 그리고 매번 변수 'i'의 현재 값을 표시했습니다.

4) 루프를 위해

'for' 루프는 반복적인 목적으로도 사용됩니다. 예를 들어, 특정 횟수만큼 특정 명령들을 반복 실행하고 싶다면 'for' 루프를 사용하면 됩니다.

아래 예에서는 'for' 문을 사용하여 변수 'i'의 값을 표시합니다. 'for' 문은 값을 3번 표시하는 데 사용됩니다.

For 루프

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   for(Int32 i=0;i<3;i++)
   {
    Console.WriteLine(i);
   }
    Console.ReadKey(); 
  
  }
 }
}

Code 설명:-

  1. 'for' 키워드는 'for 루프' 문을 시작하는 데 사용됩니다.
  2. 'for 루프'에서는 3가지를 정의합니다. 첫 번째는 'for 루프'에서 사용될 변수의 값을 초기화하는 것입니다.
  3. 두 번째는 'i'의 값을 상한과 비교하는 것입니다. 우리의 경우 상한은 3(i<3)의 값이다.
  4. 마지막으로 이에 따라 'i' 값을 증가시킵니다.
  5. 여기서는 'i' 값을 콘솔에 표시합니다.

위 코드를 올바르게 입력하여 프로그램이 성공적으로 실행되면 다음과 같은 출력이 표시됩니다.

출력:

For 루프

여기서 'for' 문이 3번 실행되는 것을 볼 수 있습니다. 그리고 매번 변수 'i'의 현재 값을 표시했습니다.

자주 묻는 질문

if 문은 범위와 복잡한 부울 조건을 처리하는 데 적합하고, switch 문은 하나의 값을 여러 고정된 조건과 비교합니다. switch 문은 여러 개의 개별 값을 다룰 때 더 깔끔한 구문을 제공하며, if-else 문은 범위, 여러 변수 및 논리 연산자를 다룰 때 적합합니다.

중첩 if 문은 if 문 안에 또 다른 if 문을 넣는 구조로, 안쪽 조건은 바깥쪽 조건이 참일 때만 검사됩니다. 이를 통해 프로그램은 여러 개의 종속적인 조건을 확인할 수 있지만, 중첩이 깊어지면 가독성이 떨어집니다.

while 루프는 매 반복 전에 조건을 검사하므로 한 번도 실행되지 않을 수 있습니다. do-while 루프는 본문 실행 후에 조건을 검사하므로 항상 최소 한 번은 실행되며, 메뉴 및 입력 유효성 검사에 적합합니다.

break 문은 루프 또는 switch 문을 즉시 종료하는 반면, continue 문은 현재 반복의 나머지 부분을 건너뛰고 다음 반복으로 이동합니다. 둘 다 흐름을 변경하지만, 루프를 완전히 종료하는 것은 break 문뿐입니다.

삼항 연산자 ?:는 if-else 문의 간결한 형태입니다. 조건을 평가하여 조건이 참이면 첫 번째 값을, 거짓이면 두 번째 값을 반환하므로 한 줄로 간결한 할당문을 작성할 수 있습니다.

foreach 루프는 인덱스나 카운터 없이 배열이나 리스트와 같은 컬렉션의 모든 요소를 ​​순회합니다. 컬렉션을 안전하게 읽어들이며 흔히 발생하는 오프셋 오류나 범위 초과 오류를 방지합니다.

예. GitHub Copilot은 Visual Studio 내의 주석이나 메서드 이름에서 if, switch, while, for 블록을 제안합니다. VS Code. RevCopilot은 오차를 발생시킬 수 있으므로, 각 제안에 대해 올바른 조건과 루프 범위를 확인하십시오.

ML.NET 파이프라인은 C# 조건문을 사용하여 특징 값에 따라 분기하고 루프를 사용하여 학습 행을 반복합니다. 동일한 if, switch 및 for 논리가 데이터를 준비하고 예측을 라우팅하며 유지 관리합니다.ping 머신러닝 워크플로우에 강력한 타입 시스템이 적용됩니다.

이 게시물을 요약하면 다음과 같습니다.