푸터 콘텐츠로 바로가기
.NET 도움말

C# For 루프 (개발자를 위한 작동 방식)

이 포괄적인 튜토리얼에서는 public static void Main 메소드 내에서 for 루프를 시작하는 데 필요한 모든 내용을 다룰 것입니다. for 루프, 루프 변수, 루프 본문, 반복 변수, 내부 및 외부 루프, 무한 루프, 부울 표현식, 중첩 루프 등을 탐구할 것입니다. 시작해봅시다!

for 루프 시작하기

for 루프는 정확히 얼마나 많은 반복을 원하는지 알 때 특화된 C#의 루프 유형입니다. C#에서 for 루프의 구문은 아래 코드 블록에 표시됩니다:

for (initialization; condition; increment)
{
    // Loop body
}
for (initialization; condition; increment)
{
    // Loop body
}
initialization
Do While condition
	' Loop body
	increment
Loop
$vbLabelText   $csharpLabel

for 루프의 구성 요소를 분해해봅시다:

  1. 초기화: 여기서 루프 변수 또는 반복 변수를 선언하고 초기화합니다.
  2. 조건: 루프가 여러 번 문을 계속 실행할지 여부를 결정하는 부울/조건 표현식입니다.
  3. 증가: 이 문은 각 반복 후 반복 변수를 업데이트합니다.

정적 보이드 메인 및 루프 변수

C#에서는 static void Main 메소드 또는 static void Main(String []args)가 애플리케이션의 진입점입니다. 이곳에서 프로그램이 실행을 시작합니다. 다음은 static void Main 메소드 내에서 for 루프를 사용하는 루프 예제입니다:

using System;

class Program
{
    static void Main()
    {
        for (int i = 0; i < 5; i++)
        {
            Console.WriteLine("This is the first for loop!");
        }
    }
}
using System;

class Program
{
    static void Main()
    {
        for (int i = 0; i < 5; i++)
        {
            Console.WriteLine("This is the first for loop!");
        }
    }
}
Imports System

Friend Class Program
	Shared Sub Main()
		For i As Integer = 0 To 4
			Console.WriteLine("This is the first for loop!")
		Next i
	End Sub
End Class
$vbLabelText   $csharpLabel

이 예제에서, 루프 변수 int i는 0으로 초기화되고 변수로 작용합니다. 루프는 i5보다 작을 때까지 계속 실행됩니다. 각 반복 후, 증가 연산 i++i의 값을 1만큼 증가시킵니다.

중첩 루프 탐색

중첩 루프는 다른 루프 안에 배치된 루프로, 내부 루프와 반복기 섹션을 포함하는 외부 루프 형성을 합니다. 이들은 행렬과 같은 다차원 데이터 구조를 다룰 때나 모든 요소 조합에 특정 작업을 수행해야 할 때 유용할 수 있습니다.

다음은 외부 루프 내부에 내부 루프가 있는 C#의 중첩된 for 루프 예제입니다:

for (int i = 0; i < 3; i++)
{
    for (int j = 0; j < 2; j++)
    {
        Console.WriteLine($"i: {i}, j: {j}");
    }
}
for (int i = 0; i < 3; i++)
{
    for (int j = 0; j < 2; j++)
    {
        Console.WriteLine($"i: {i}, j: {j}");
    }
}
For i As Integer = 0 To 2
	For j As Integer = 0 To 1
		Console.WriteLine($"i: {i}, j: {j}")
	Next j
Next i
$vbLabelText   $csharpLabel

이 예제에서, 외부 루프는 i이 0과 같을 때 실행되고 시작합니다. 그러면 내부 루프는 i의 다음 값으로 이동하기 전에 j의 가능한 모든 값을 반복합니다.

무한 루프 및 루프 제어

무한 루프는 테스트 조건이 절대 거짓으로 변하지 않기 때문에 절대 끝나지 않는 루프입니다. 이러한 루프는 프로그램이 무기한으로 멈출 수 있어 위험할 수 있습니다. 종료 조건이 최종적으로 충족되도록 while 루프나 foreach 루프와 같은 루프를 작성할 때 주의하십시오. 다음은 C#에서 명시된 조건이 없는 무한 루프의 예입니다.

// This is an example of an infinite loop
for (int i = 0; ; i++)
{
    Console.WriteLine("This loop will run forever!");
}
// This is an example of an infinite loop
for (int i = 0; ; i++)
{
    Console.WriteLine("This loop will run forever!");
}
' This is an example of an infinite loop
Dim i As Integer = 0
Do
	Console.WriteLine("This loop will run forever!")
	i += 1
Loop
$vbLabelText   $csharpLabel

표준 for 루프 구조 외에도, C#은 루프 제어문인 breakcontinue을 제공하여 루프를 더 효과적으로 관리할 수 있도록 도와줍니다.

  • break: 이 문은 루프를 즉시 종료하는 데 사용됩니다. break 문이 발견되면 루프가 종료되고 프로그램은 루프 외부 코드의 다음 줄로 계속 진행합니다.
  • continue: 이 문은 현재 반복의 루프 본문의 남은 코드를 건너뛰고 루프의 다음 반복으로 점프하는 데 사용됩니다.

breakcontinue의 사용을 시연하는 예제입니다:

for (int i = 0; i < 10; i++)
{
    if (i == 5)
    {
        break; // Exits the loop when i is equal to 5
    }

    if (i % 2 == 0)
    {
        continue; // Skips even numbers
    }

    Console.WriteLine($"Odd number: {i}");
}
for (int i = 0; i < 10; i++)
{
    if (i == 5)
    {
        break; // Exits the loop when i is equal to 5
    }

    if (i % 2 == 0)
    {
        continue; // Skips even numbers
    }

    Console.WriteLine($"Odd number: {i}");
}
For i As Integer = 0 To 9
	If i = 5 Then
		Exit For ' Exits the loop when i is equal to 5
	End If

	If i Mod 2 = 0 Then
		Continue For ' Skips even numbers
	End If

	Console.WriteLine($"Odd number: {i}")
Next i
$vbLabelText   $csharpLabel

이 예제에서 i5에 도달하면 루프가 실행을 멈춥니다. 짝수를 건너뛰기 위해 continue 문이 사용되므로 5보다 작은 홀수만 출력됩니다.

Boolean Expressions와 Loop Conditions

루프 조건은 루프가 계속 실행되어야 하는지를 결정하는 boolean 표현식입니다. 이 표현식은 각 반복 전에 평가되며, 표현식이 true일 때만 루프가 실행됩니다. 많은 루프에서 일반적으로 사용되는 boolean 표현식은 다음과 같습니다:

  • 비교: i < 10, i >= 10, i > 10, i == 10, i != 10
  • 논리 연산자: && (AND), || (OR), ! (NOT)

여러 표현식을 논리 연산자를 사용하여 결합하여 보다 복잡한 루프 조건을 만들 수 있습니다. 예를 들어:

for (int i = 0; i < 10 && i != 5; i++)
{
    Console.WriteLine(i);
}
for (int i = 0; i < 10 && i != 5; i++)
{
    Console.WriteLine(i);
}
Dim i As Integer = 0
Do While i < 10 AndAlso i <> 5
	Console.WriteLine(i)
	i += 1
Loop
$vbLabelText   $csharpLabel

이 예제에서, 루프는 i10보다 작고 5과 같지 않은 동안 실행됩니다.

코드 블럭과 루프 몸체

코드 블록은 중괄호에 포함된 문장의 그룹입니다 {}. for 루프에서는 루프 선언 다음에 오는 코드 블록을 루프 본체라고 합니다. 여기에 루프의 각 반복 동안 실행하고자 하는 코드를 놓습니다.

for (int i = 0; i < 5; i++)
{
    // This is the loop body
    Console.WriteLine($"Iteration: {i}");
}
for (int i = 0; i < 5; i++)
{
    // This is the loop body
    Console.WriteLine($"Iteration: {i}");
}
For i As Integer = 0 To 4
	' This is the loop body
	Console.WriteLine($"Iteration: {i}")
Next i
$vbLabelText   $csharpLabel

이 예제에서, 루프 본문은 현재 반복 번호를 출력하는 단일 Console.WriteLine 문으로 구성됩니다.

루프 실행 단계

코드에서 for 루프가 만나면, 다음과 같은 일련의 이벤트가 발생합니다:

  1. 루프 변수가 초기화됩니다.
  2. boolean 표현식이 평가됩니다. 표현식이 false인 경우, 루프가 생략되고 프로그램은 루프 외부 코드의 다음 줄로 계속 진행됩니다.
  3. 표현식이 true인 경우, 루프 본문이 실행됩니다.
  4. 루프 변수가 증가하거나 업데이트됩니다.
  5. 부울 표현식이 false가 될 때까지 2-4단계를 반복합니다.

For 루프를 사용하여 보고서를 생성하기 위한 IronPDF 통합

IronPDF의 PDF 생성 기능을 배워 동적이고 견고한 PDF 보고서를 C#에서 생성하세요. 이는 for 루프를 사용할 때 특히 유용합니다. 루프에서 처리된 데이터 기반으로 동적 보고서나 문서를 생성해야 하는 경우가 많기 때문입니다. 이 섹션에서는 IronPDF와 C# for 루프를 함께 사용하여 간단한 보고서를 생성하는 방법을 보여줍니다.

먼저 IronPDF NuGet 패키지를 설치해야 합니다. Visual Studio의 패키지 관리자 콘솔을 사용하여 이를 수행할 수 있습니다:

Install-Package IronPdf

IronPDF를 설치한 후에는 숫자와 그 제곱을 포함하는 표를 가진 HTML로부터 PDF 보고서를 생성하는 단순한 예제를 만듭니다.

1단계: 필요한 네임스페이스를 추가합니다.

using IronPdf;
using System.IO;
using IronPdf;
using System.IO;
Imports IronPdf
Imports System.IO
$vbLabelText   $csharpLabel

2단계: GenerateReport라는 새 메소드를 만듭니다.

static void GenerateReport()
{
    // Create an HTML template for the report
    var htmlTemplate = @"
    <html>
        <head>
            <style>
                table {
                    border-collapse: collapse;
                    width: 100%;
                }

                th, td {
                    border: 1px solid black;
                    padding: 8px;
                    text-align: center;
                }
            </style>
        </head>
        <body>
            <h1>Number Squares Report</h1>
            <table>
                <thead>
                    <tr>
                        <th>Number</th>
                        <th>Square</th>
                    </tr>
                </thead>
                <tbody>
                    {0}
                </tbody>
            </table>
        </body>
    </html>";

    // Generate the table rows using a for loop
    string tableRows = "";
    for (int i = 1; i <= 10; i++)
    {
        tableRows += $"<tr><td>{i}</td><td>{i * i}</td></tr>";
    }

    // Insert the generated table rows into the HTML template
    string finalHtml = string.Format(htmlTemplate, tableRows);

    // Create a new PDF document from the HTML using IronPdf
    var pdf = new IronPdf.ChromePdfRenderer();
    var document = pdf.RenderHtmlAsPdf(finalHtml);

    // Save the PDF to a file
    document.SaveAs("NumberSquaresReport.pdf");
}
static void GenerateReport()
{
    // Create an HTML template for the report
    var htmlTemplate = @"
    <html>
        <head>
            <style>
                table {
                    border-collapse: collapse;
                    width: 100%;
                }

                th, td {
                    border: 1px solid black;
                    padding: 8px;
                    text-align: center;
                }
            </style>
        </head>
        <body>
            <h1>Number Squares Report</h1>
            <table>
                <thead>
                    <tr>
                        <th>Number</th>
                        <th>Square</th>
                    </tr>
                </thead>
                <tbody>
                    {0}
                </tbody>
            </table>
        </body>
    </html>";

    // Generate the table rows using a for loop
    string tableRows = "";
    for (int i = 1; i <= 10; i++)
    {
        tableRows += $"<tr><td>{i}</td><td>{i * i}</td></tr>";
    }

    // Insert the generated table rows into the HTML template
    string finalHtml = string.Format(htmlTemplate, tableRows);

    // Create a new PDF document from the HTML using IronPdf
    var pdf = new IronPdf.ChromePdfRenderer();
    var document = pdf.RenderHtmlAsPdf(finalHtml);

    // Save the PDF to a file
    document.SaveAs("NumberSquaresReport.pdf");
}
Shared Sub GenerateReport()
	' Create an HTML template for the report
	Dim htmlTemplate = "
    <html>
        <head>
            <style>
                table {
                    border-collapse: collapse;
                    width: 100%;
                }

                th, td {
                    border: 1px solid black;
                    padding: 8px;
                    text-align: center;
                }
            </style>
        </head>
        <body>
            <h1>Number Squares Report</h1>
            <table>
                <thead>
                    <tr>
                        <th>Number</th>
                        <th>Square</th>
                    </tr>
                </thead>
                <tbody>
                    {0}
                </tbody>
            </table>
        </body>
    </html>"

	' Generate the table rows using a for loop
	Dim tableRows As String = ""
	For i As Integer = 1 To 10
		tableRows &= $"<tr><td>{i}</td><td>{i * i}</td></tr>"
	Next i

	' Insert the generated table rows into the HTML template
	Dim finalHtml As String = String.Format(htmlTemplate, tableRows)

	' Create a new PDF document from the HTML using IronPdf
	Dim pdf = New IronPdf.ChromePdfRenderer()
	Dim document = pdf.RenderHtmlAsPdf(finalHtml)

	' Save the PDF to a file
	document.SaveAs("NumberSquaresReport.pdf")
End Sub
$vbLabelText   $csharpLabel

Program.cs 파일에서 GenerateReport 메소드를 호출합니다:

GenerateReport();
GenerateReport();
GenerateReport()
$vbLabelText   $csharpLabel

IronPDF의 숫자 제곱 보고서

이 예제를 실행하면 'NumberSquaresReport.pdf'라는 PDF 보고서가 애플리케이션의 출력 디렉토리에 생성됩니다. 보고서에는 1부터 10까지의 숫자와 그 제곱이 포함되며, C# for 루프를 사용하여 생성됩니다.

결론

결론적으로, 이 포괄적인 튜토리얼은 C#의 for 루프와 관련 개념에 대한 탄탄한 기초를 제공했습니다. 우리는 루프 변수, 루프 본체, 반복 변수, 내부 및 외부 루프, 무한 루프, boolean 표현식, 코드 블록, 중첩 루프를 탐구하였으며, 더 나아가 강력한 IronPDF 라이브러리를 통합하여 for 루프를 사용한 동적 PDF 보고서 생성 방법까지 시연했습니다.

IronPDF는 그 기능을 테스트할 수 있는 무료 체험판을 제공하며, 유용하다고 판단되면 적합한 요구에 맞는 합리적인 옵션으로 라이선스를 시작할 수 있습니다.

자주 묻는 질문

C#에서 for 루프는 어떻게 작동합니까?

C#에서 for 루프는 지정된 횟수만큼 코드를 반복 실행하는데 사용됩니다. 이 루프는 초기화, 조건, 증가의 세 가지 주요 부분으로 구성되어 있으며 루프 실행을 제어합니다.

'static void Main' 메서드의 C#에서의 역할은 무엇입니까?

'static void Main' 메서드는 C# 애플리케이션의 시작점으로 프로그램의 실행을 시작하는 곳입니다. 일반적으로 다양한 작업을 수행할 초기 코드, 예를 들어 for 루프 등이 포함됩니다.

C#에서 for 루프를 사용하여 PDF 보고서를 생성하는 방법은 무엇입니까?

IronPDF와 같은 라이브러리를 사용하여 C#에서 PDF 보고서를 생성할 수 있습니다. for 루프는 데이터를 처리하고 이를 표나 보고서 형식으로 정리한 후, IronPDF를 이용해 PDF 문서로 렌더링할 수 있습니다.

중첩된 루프란 무엇이며 C#에서 어떻게 작동합니까?

C#의 중첩된 루프는 다른 루프 안에 위치한 루프입니다. 이들은 다차원 데이터 구조를 처리하는 데 특히 유용하며, 각 요소의 결합에서 작업을 수행할 수 있게 해줍니다.

C#에서 무한 루프를 방지하는 방법은 무엇입니까?

무한 루프를 방지하기 위해서는 루프의 조건이 궁극적으로 거짓이 되도록 보장해야 합니다. 'break'와 같은 루프 제어 문을 사용하여 특정 조건이 충족될 때 루프를 종료할 수 있습니다.

C# 루프에서 'break'와 'continue' 문은 무엇에 사용됩니까?

C#에서 'break' 문은 루프를 즉시 종료하는 데 사용되고, 'continue' 문은 현재 반복을 건너뛰고 루프의 다음 반복으로 진행됩니다.

for 루프의 부울 표현식은 어떻게 작동합니까?

for 루프의 부울 표현식은 루프 실행 여부를 결정합니다. 반복이 시작되기 전에 평가되며, 루프가 진행되려면 참이어야 합니다.

for 루프와 함께 사용할 수 있는 C# 라이브러리를 설치하는 방법은 무엇입니까?

Visual Studio의 패키지 관리자 콘솔에서 적절한 설치 명령을 사용하여 C# 라이브러리를 설치할 수 있으며, 이를 통해 for 루프 내에서 해당 기능을 활용할 수 있습니다.

제이콥 멜러, 팀 아이언 최고기술책임자
최고기술책임자

제이콥 멜러는 Iron Software의 최고 기술 책임자(CTO)이자 C# PDF 기술을 개척한 선구적인 엔지니어입니다. Iron Software의 핵심 코드베이스를 최초로 개발한 그는 창립 초기부터 회사의 제품 아키텍처를 설계해 왔으며, CEO인 캐머런 리밍턴과 함께 회사를 NASA, 테슬라, 그리고 전 세계 정부 기관에 서비스를 제공하는 50명 이상의 직원을 보유한 기업으로 성장시켰습니다.

제이콥은 맨체스터 대학교에서 토목공학 학사 학위(BEng)를 최우등으로 취득했습니다(1998~2001). 1999년 런던에서 첫 소프트웨어 회사를 설립하고 2005년 첫 .NET 컴포넌트를 개발한 후, 마이크로소프트 생태계 전반에 걸쳐 복잡한 문제를 해결하는 데 전문성을 발휘해 왔습니다.

그의 대표 제품인 IronPDF 및 Iron Suite .NET 라이브러리는 전 세계적으로 3천만 건 이상의 NuGet 설치 수를 기록했으며, 그의 핵심 코드는 전 세계 개발자들이 사용하는 다양한 도구에 지속적으로 활용되고 있습니다. 25년의 실무 경험과 41년의 코딩 전문성을 바탕으로, 제이콥은 차세대 기술 리더들을 양성하는 동시에 기업 수준의 C#, Java, Python PDF 기술 혁신을 주도하는 데 주력하고 있습니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해