자습서: C#
이 자습서에서는 변수를 검사하고 해당 변수에 따라 실행 경로를 변경하는 C# 코드를 작성하는 방법을 설명합니다. C# 코드를 작성하고 컴파일 및 실행 결과를 확인합니다. 이 자습서에는 C#의 분기 및 반복 구문을 탐색하는 일련의 단원이 포함되어 있습니다. 이러한 단원에서는 C# 언어의 기본 사항을 설명합니다.
이 자습서에서는 다음을 수행합니다.
- C# 개발 환경을 사용하여 GitHub Codespace를 시작합니다.
-
if및else문을 검토합니다. - 루프를 사용하여 작업을 반복합니다.
- 중첩된 루프를 사용합니다.
- 분기와 루프를 결합합니다.
필수 조건
다음 옵션 중 하나가 있어야 합니다.
- GitHub Codespaces를 사용하는 GitHub 계정입니다. 아직 계정이 없는 경우 GitHub.com 체험 계정을 만들 수 있습니다.
- 다음 도구가 설치된 컴퓨터:
if 문 사용
자습서 환경에서 GitHub Codespace를 시작하려면 자습서 코드스페이스 리포지토리에 대한 브라우저 창을 엽니다. 녹색 코드 단추와 Codespaces 탭을 선택합니다. 그런 다음, + 이 환경을 사용하여 새 Codespace를 만드는 기호를 선택합니다. 이 시리즈의 다른 자습서를 완료한 경우 새 자습서를 만드는 대신 해당 코드스페이스를 열 수 있습니다.
코드스페이스가 로드되면 branches-loops.cs자습서 폴더에 새 파일을 만듭니다.
새 파일을 엽니다.
다음 코드를 branches-loops.cs 입력하거나 복사합니다.
int a = 5; int b = 6; if (a + b > 10) Console.WriteLine("The answer is greater than 10.");통합 터미널에서 다음 명령을 입력하여 이 코드를 사용해 보세요.
cd tutorials dotnet branches-loops.cs콘솔에 "대답이 10보다 큽니다."라는 메시지가 표시됩니다.
합계가 10보다 작도록
b선언을 수정합니다.int b = 3;터미널 창에 다시 입력
dotnet branches-loops.cs합니다.답변이 10보다 작기 때문에 아무것도 인쇄되지 않습니다. 당신이 테스트 중인 조건은 거짓입니다.
if문에서 가능한 분기 중 하나(true 분기)만 작성했기 때문에 실행할 코드가 존재하지 않습니다.
팁
C# 또는 프로그래밍 언어를 탐색할 때 코드를 작성할 때 실수를 할 수 있습니다. 컴파일러는 오류를 찾아 보고합니다. 오류 출력 및 오류를 생성한 코드를 자세히 살펴보세요. 또한 코필로트에게 차이점을 찾거나 실수를 발견하도록 요청할 수 있습니다. 컴파일러 오류는 일반적으로 문제를 찾는 데 도움이 될 수 있습니다.
이 첫 번째 샘플에서는 if과 부울 형식의 강력함을 보여줍니다.
부울은 두 가지 값 중 하나인 true 또는 false를 가질 수 있는 변수입니다. C#은 부울 변수에 대한 특수 형식 bool 을 정의합니다.
if 문장은 bool값을 확인합니다. 값이 true일 때, if 다음 구문이 실행됩니다. 그렇지 않으면 건너뜁니다. 조건을 확인하고 해당 조건에 따라 문을 실행하는 이 프로세스는 강력합니다. 자세히 알아보겠습니다.
if와 else를 함께 작동하게 하라.
true 분기와 false 분기 모두에서 다른 코드를 실행하려면 조건이 false일 때 실행되는 else 분기를 만듭니다. 분기를 else 사용해 보세요.
다음 코드 조각에 마지막 두 줄을 추가합니다(처음 네 줄은 이미 있어야 합니다.).
int a = 5; int b = 3; if (a + b > 10) Console.WriteLine("The answer is greater than 10"); else Console.WriteLine("The answer is not greater than 10");else키워드 다음 문은 테스트 중인 조건이false경우에만 실행됩니다.if와else을/를 부울 조건과 결합하면true및false조건을 모두 처리하는 데 필요한 모든 기능을 제공합니다.중요하다
if및else진술의 들여쓰기는 인간 독자를 위한 것입니다. C# 언어는 들여쓰기 또는 공백을 중요하게 처리하지 않습니다.if또는else키워드 다음 문은 조건에 따라 실행됩니다. 이 자습서의 모든 샘플은 문의 제어 흐름에 따라 줄을 들여쓰는 일반적인 방법을 따릅니다.들여쓰기가 중요한 역할을 하지 않으므로,
{및}을 사용하여 둘 이상의 문이 조건부로 실행될 블록의 일부임을 나타내야 합니다. C# 프로그래머는 일반적으로 모든if및else절에서 이러한 중괄호를 사용합니다.다음 예제는 이전 예제에서 만든 것과 동일하며 추가
{및}추가됩니다. 다음 코드와 일치하도록 코드를 수정합니다.int a = 5; int b = 3; if (a + b > 10) { Console.WriteLine("The answer is greater than 10"); } else { Console.WriteLine("The answer is not greater than 10"); }팁
이 자습서의 나머지 부분에서는 코드 예제들이 모두 통용되는 관례에 따라 중괄호를 포함합니다.
더 복잡한 조건을 테스트할 수 있습니다. 지금까지 작성한 코드 다음에 다음 코드를 추가합니다.
int a = 5; int b = 3; int c = 4; if ((a + b + c > 10) && (a == b)) { Console.WriteLine("The answer is greater than 10"); Console.WriteLine("And the first number is equal to the second"); } else { Console.WriteLine("The answer is not greater than 10"); Console.WriteLine("Or the first number is not equal to the second"); }==기호는 의 동등성을확인합니다.==을 사용하면a = 5에서 본 동등성 테스트가 할당과 구분됩니다.&&"and"를 나타냅니다. 즉, true 분기에서 문을 실행하려면 두 조건이 모두 true여야 합니다. 또한 이러한 예제는 각 조건부 분기에 여러 문을 포함할 수 있음을 보여 줍니다. 단,{과}안에 포함해야 합니다."or"를 나타내는 데 사용할
||수도 있습니다. 지금까지 작성한 내용 다음에 다음 코드를 추가합니다.if ((a + b + c > 10) || (a == b))a,b및c의 값을 수정하고, 탐색을 위해&&과||간에 전환하세요.&&및||연산자의 작동 방식을 더 잘 이해할 수 있습니다.첫 번째 단계를 완료했습니다. 다음 섹션을 시작하기 전에 현재 코드를 별도의 메서드로 이동해 보겠습니다. 이렇게 하면 새 예제 작업을 더 쉽게 시작할 수 있습니다. 기존 코드를 라는
ExploreIf()메서드에 넣습니다. 프로그램 맨 위에서 호출합니다. 이러한 변경 내용을 완료하면 코드는 다음 코드와 같이 표시됩니다.ExploreIf(); void ExploreIf() { int a = 5; int b = 3; if (a + b > 10) { Console.WriteLine("The answer is greater than 10"); } else { Console.WriteLine("The answer is not greater than 10"); } int c = 4; if ((a + b + c > 10) && (a > b)) { Console.WriteLine("The answer is greater than 10"); Console.WriteLine("And the first number is greater than the second"); } else { Console.WriteLine("The answer is not greater than 10"); Console.WriteLine("Or the first number is not greater than the second"); } if ((a + b + c > 10) || (a > b)) { Console.WriteLine("The answer is greater than 10"); Console.WriteLine("Or the first number is greater than the second"); } else { Console.WriteLine("The answer is not greater than 10"); Console.WriteLine("And the first number is not greater than the second"); } }ExploreIf()의 호출을 주석 처리합니다. 이 섹션에서 작업할 때 출력이 덜 복잡해집니다.//ExploreIf();
C#에서 //가 주석을 시작합니다. 주석은 소스 코드에 유지하려는 텍스트이지만 코드로 실행되지는 않습니다. 컴파일러는 주석에서 실행 코드를 생성하지 않습니다.
루프를 사용하여 작업 반복
더 큰 프로그램을 만들기 위한 또 다른 중요한 개념은 루프입니다. 루프를 사용하여 두 번 이상 실행하려는 문을 반복합니다.
ExploreIf호출 후에 이 코드를 추가합니다.int counter = 0; while (counter < 10) { Console.WriteLine($"Hello World! The counter is {counter}"); counter++; }while문은 조건을 확인하고while다음 문을 실행합니다. 조건이 false가 될 때까지 조건을 확인하고 해당 문을 실행하는 작업을 반복합니다.이 예제에는 다른 하나의 새 연산자가 있습니다.
++변수 뒤의counter증분 연산자입니다.counter의 값에 1을 더하여, 그 값을counter변수에 저장합니다.중요하다
코드를 실행할 때
while루프 조건이 false로 변경되는지 확인합니다. 그렇지 않으면 프로그램이 종료되지 않는 무한 루프 만듭니다. Ctrl-C 또는 다른 방법을 사용하여 프로그램을 강제로 종료해야 하므로 이 동작은 이 샘플에서 설명되지 않습니다.while루프는while다음 코드를 실행하기 전에 조건을 테스트합니다.do...while루프는 먼저 코드를 실행한 다음 조건을 확인합니다. do while 루프는 다음 코드에 나와 있습니다.int counter = 0; do { Console.WriteLine($"Hello World! The counter is {counter}"); counter++; } while (counter < 10);이
do루프와 이전while루프는 동일한 출력을 생성합니다.
이제 마지막 루프 문으로 넘어가도록 하겠습니다.
for 루프와 작업하다
C# 코드에 표시되는 또 다른 일반적인 루프 문은 for 루프입니다.
다음 코드를 사용해 보세요.
for (int counter = 0; counter < 10; counter++) { Console.WriteLine($"Hello World! The counter is {counter}"); }위의
for루프는 이미 사용한while루프 및do루프와 동일한 작업을 수행합니다.for문에는 작동 방식을 제어하는 세 가지 부분이 있습니다.- 첫 번째 부분은 이니셜라이저 대한:
int counter = 0;counter루프 변수임을 선언하고 초기 값을0설정합니다. - 중간 부분은 for 조건
counter < 10입니다. 값for이 10보다 작은 한 이counter루프가 계속 실행되도록 선언합니다. - 마지막 부분은 반복기 대한:
counter++for문 다음에 블록을 실행한 후 루프 변수를 수정하는 방법을 지정합니다. 여기서는 블록이 실행될 때마다counter이 1씩 증가한다고 지정합니다.
- 첫 번째 부분은 이니셜라이저 대한:
이러한 조건을 직접 실험해 보세요. 다음 변경 내용을 각각 시도합니다.
- 다른 값으로 시작하도록 이니셜라이저를 변경합니다.
- 조건을 다른 값으로 중지하도록 변경합니다.
완료되면 다음 섹션으로 이동하여 코드를 직접 작성하고 배운 내용을 사용합니다.
이 자습서에서는 다루지 않는 다른 루프 문인 foreach 문이 있습니다.
foreach 문은 항목 시퀀스의 모든 항목에 대해 해당 문을 반복합니다. 주로 컬렉션에 사용됩니다. 다음 자습서에서 다룹니다.
중첩된 루프 만들기
외부 루프의 whiledofor 각 항목을 내부 루프의 각 항목과 결합하여 행렬을 만들거나 다른 루프 내에 루프를 중첩할 수 있습니다. 행과 열을 나타내는 영숫자 쌍 집합을 빌드해 보겠습니다.
행을 생성하는 다음
for루프를 추가합니다.for (int row = 1; row < 11; row++) { Console.WriteLine($"The row is {row}"); }열을 생성하는 다른 루프를 추가합니다.
for (char column = 'a'; column < 'k'; column++) { Console.WriteLine($"The column is {column}"); }마지막으로, 쌍을 형성하기 위해 행 내부에 열 루프를 중첩합니다.
for (int row = 1; row < 11; row++) { for (char column = 'a'; column < 'k'; column++) { Console.WriteLine($"The cell is ({row}, {column})"); } }외부 루프는 내부 루프의 전체 실행마다 한 번 증가합니다. 행과 열 중첩을 반대로 바꾸고 변경 내용을 직접 확인합니다. 완료되면 이 섹션의 코드를 호출
ExploreLoops()된 메서드에 배치합니다.
분기문 및 반복문 결합
이제 C# 언어로 if 문과 루핑 구문을 사용했으므로 C# 코드를 작성하여 3으로 나눌 수 있는 모든 정수 1~20의 합계를 찾을 수 있는지 확인합니다. 다음은 몇 가지 힌트입니다.
-
%연산자는 나누기 작업의 나머지 부분을 제공합니다. -
if문은 숫자가 합계의 일부여야 하는지 확인하는 조건을 제공합니다. -
for루프는 모든 숫자 1에서 20까지의 일련의 단계를 반복하는 데 도움이 될 수 있습니다.
직접 시도해 보세요. 그런 다음 어떻게 했는지 확인합니다. 힌트로 말씀드리자면, 답은 63이 나와야 합니다.
이런 식으로 생각해 왔나요?
int sum = 0;
for (int number = 1; number < 21; number++)
{
if (number % 3 == 0)
{
sum = sum + number;
}
}
Console.WriteLine($"The sum is {sum}");
"분기 및 루프" 자습서를 완료했습니다. 다음 문서에서 이러한 개념에 대해 자세히 알아볼 수 있습니다.
- 선택문
- 반복 문
리소스 정리
GitHub는 30일 동안 비활성 상태이면 Codespace를 자동으로 삭제합니다. 이 시리즈에서 더 많은 자습서를 탐색하려는 경우 Codespace를 프로비전된 상태로 둘 수 있습니다.
.NET 사이트를 방문하여 .NET SDK를 다운로드할 준비가 되면 Codespace를 삭제할 수 있습니다. Codespace를 삭제하려면 브라우저 창을 열고 Codespaces로 이동합니다. 창에 코드스페이스 목록이 표시됩니다. 학습 자습서 코드스페이스에 대한 항목에서 점 3개(...)를 선택하고 삭제를 선택합니다.
다음 단계
.NET