제어문
제어문은 프로그램 실행 순서를 제어하거나 프로그램 내용을 반복하는 작업 등을 처리할 때 사용하는 구문으로 조건문과 반복문으로 구분합니다.
제어문 | 설명 | 종류 |
순차문 | 기본적으로 모든 실행문은 순서대로 실행됩니다. | |
조건문(선택문) | 조건의 참 또는 거짓에 따라 서로 다른 명령문을 실행할 수 있는 구조이며, 조건문은 다른 말로 분기문 또는 비교 판단문이라고 함. | - if 문(조건 하나비교) - else 문 (조건 분기) |
반복문 | 특정 명령문을 지정된 수만큼 반복해서 실행할 때나 조건식이 참일 동안 반복시킬 때 사용함. | - for 문 (구간 반복) - do 문 (선행 반복) - while 문 (조건 반복) - foreach 문 (배열 반복) |
기타 | - break 문 : 반복문 내에서 반복을 중지함 - continue 문 : 반복문 내에서 그다음 반복문으로 이동 - goto 문 : C#에서 자주 사용하지는 않지만, 레이블(레이블 이름과 콜론(:)으로 만듦)로 지정된 곳으로 직접 이동 시킵니다. |
if 문
단문
단문을 사용하는 if (조건식) 문장; 형태는 한 줄로 쓰거나 바로 그다음 줄에 작성할 수 있습니다. 또는 괄호를 사용할 수도 있습니다. 복문이면 반드시 블록 기호인 중괄호({})가 있어야 합니다.
//Case 1
if (1 == 1) Console.WriteLine("안녕");
//Case 2
if (1 == 1)
Console.WriteLine("안녕");
//Case 3
if (1 == 1) {
Console.WriteLine("안녕");
}
복문
if (1 == 1) {
Console.WriteLine("안녕");
Console.WriteLine("반가워");
}
Else문
else 문은 단독으로 사용할 수 없고 if 문 다음에 else 문이 오는 구조입니다.
if 문 조건이 거짓일 때 원하는 실행문을 실행할 수 있습니다.
if (1 == 1) {
Console.WriteLine("안녕");
Console.WriteLine("반가워");
} else {
Console.WriteLine("반갑지 않아");
}
switch 문
switch 문은 표현식 값이 값1 ~값n 중 하나와 일치하면 해당 실행문을 실행하고, 일치하지 않으면 default 실행문을 실행합니다.
int x = 3;
switch (x)
{
case 1:
Console.WriteLine("1 입니다.");
break;
case 2:
Console.WriteLine("2 입니다.");
break;
case 3:
Console.WriteLine("3 입니다.");
break;
}
for 문
for 문은 특정 구문을 여러 번 반복해서 실행할 때 사용합니다. for 문 형식은 다음과 같습니다.
for (초기식; 조건식; 증감식;)
{
실행문;
}
for 문을 사용하여 ‘안녕하세요.’ 세 번 출력하기
using System;
namespace Day4_Main
{
class Day4
{
static void Main(string[] args)
{
for (int i = 0; i < 3; i++)
{
Console.WriteLine("안녕하세요.");
}
}
}
}
1부터 5까지 짝수의 합
using System;
namespace Day5_Main
{
class Day5
{
static void Main(string[] args)
{
int n = 5; // 5의 짝수 숫자 더하기
int sum = 0;
for (int i = 1; i <= n; i++)
{
if (i % 2 == 0) // i / 2 의 나머지가 0인 경우
{
sum += i; // sum = sum + i
}
}
Console.WriteLine(sum); //6 출력
}
}
}
1~100 더하기
using System;
namespace Day5_Main
{
class Day5
{
static void Main(string[] args)
{
//1 ~ 100 까지의 합 구하기
int sum = 0;
for (int i = 1; i <= 100; i++)
{
sum += i;
}
Console.WriteLine(sum);
}
}
}
while 문
while 문은 조건식이 참일 동안 문장을 반복 실행합니다.
while 문으로 ‘안녕하세요’ 여러번 출력하기
using System;
namespace Day6
{
public class Day6
{
static void Main(string[] args)
{
int count = 0;
while (count < 3) //count = 0, 1, 2 실행
{
Console.WriteLine("안녕하세요");
count++;
}
}
}
}
피보나치 수열을 while 문으로 표현하기
using System;
namespace Day6
{
public class Day6
{
static void Main(string[] args)
{
/*int count = 0;
while (count < 3)
{
Console.WriteLine("안녕하세요");
count++;
}*/
int first = 0;
int second = 1;
while (second <=20)
{
Console.WriteLine(second);
int temp = first + second;
first = second;
second = temp;
}
}
}
}
do while 반복문으로 최소 한 번은 실행하기
using System;
namespace Day6
{
public class Day6
{
static void Main(string[] args)
{
//do while 문 사용하기
int count = 0;
do
{
Console.WriteLine("안녕하세요");
count++;
} while (count < 3); //count = 0, 1, 2 총 3번출력
}
}
}
1에서 100까지 3의 배수이면서 4의 배수인 정수 합 구하기
using System;
namespace Day6
{
public class Day6
{
static void Main(string[] args)
{
//1에서 100까지의 3의 배수이면서 4의 배수인 정수의 합
int sum = 0;
int i = 0;
do
{
if (i % 3 == 0 && i % 4 == 0)
{
sum += i;
}
++i;
} while (i < 100);
Console.WriteLine(sum);
}
}
}
foreach 문으로 배열 반복하기
foreach 문은 배열이나 컬렉션 같은 값을 여러개 담고 있는 데이터 구조에서 각각의 데이터가 들어 있는 만큼 반복하는 반복문입니다.
문자열에서 문자 하나씩 뽑아 출력하기
using System;
namespace N_foreach
{
internal class @foreach
{
public void foreachEx()
{
string str = "ABC123";
foreach (var c in str)
{
Console.WriteLine(c);
}
}
}
}
break 문
반복문(for, while, do)를 빠져나올 때는 break 문을 사용합니다.
using System;
namespace N_Break
{
internal class Break
{
public void BreakEx()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("현재 i의 값은 = "+ i);
break;
}
}
}
}
첫 번째 cw 실행되고 break로 빠져나와 다음 i 값이 출력되지 않는걸 확인 할 수 있었습니다.
using System;
namespace N_Break
{
internal class Break
{
public void BreakEx()
{
for (int i = 0; i < 10; i++)
{
if (i == 5)
break;
Console.WriteLine("현재 i의 값은 = " + i);
}
}
}
}
i 가 5일 경우 break 를 실행하는 조건문을 넣어 사용해보니
i 값이 4까지는 출력되지만 i 값이 5일때 break로 반복문이 빠져나오는 걸 확인 할 수 있었습니다.
continue 문으로 코드 건너뛰기
using System;
namespace N_Break
{
internal class Break
{
public void BreakEx()
{
/*for (int i = 0; i < 10; i++)
{
if (i == 5)
break;
Console.WriteLine("현재 i의 값은 = " + i);
}*/
for (int i = 0; i < 5; i++)
{
if (i == 3)
continue;
Console.WriteLine("현재 i의 값은 = " + i);
}
}
}
}
i 가 3일 경우 continue 문이 실행되어 [현재 i 값은 = 3]이 건너뛰어 지는거를 확인 할 수 있었습니다.
goto로 프로그램 흐름을 원하는 대로 바꾸기
goto 구문은 특정 레이블로 이동하는 기능을 합니다. C#에서 레이블은 콜론(:) 기호를 레이블 이름 뒤에 붙여 만듭니다. 이렇게 만든 레이블 코드는 평상시에는 주석처럼 아무 의미 없는 코드로 사용하지만, goto 구문 뒤에 레이블을 지정하면 해당 레이블로 이동하는 기능을합니다.
using System;
namespace N_goto
{
internal class @goto
{
public void gotoEx() // goto는 특정 영역으로 이동하는 기능이다.
{
Console.WriteLine("시작");
Start:
Console.WriteLine("0, 1, 2 중 하나 입력 : _\\b");
int chater = Convert.ToInt32(Console.ReadLine());
if (chater == 1)
{
goto Chapter1; //1 입력시 Chapter1 영역으로 이동
} else if (chater == 2)
{
goto Chapter2;
} else if (chater == 3)
{
goto End;
}
Chapter1: // 1 입력 받은 경우 여기서 시작
Console.WriteLine("1장입니다.");
Chapter2: // 2 입력 받은 경우 여기서 시작
Console.WriteLine("2장입니다.");
goto Start;
End:
Console.WriteLine("종료");
}
}
}
'C# > Basic Syntax' 카테고리의 다른 글
[C#] 8. 함수 (0) | 2022.09.29 |
---|---|
[C#] 7. 배열 (1) | 2022.09.22 |
[C#] 5. 연산자 (0) | 2022.09.19 |
[C#] 4. 콘솔 입/출력, Convert 클래스, var 키워드 (0) | 2022.09.18 |
[C#] 3. 문자/문자열/논리 데이터 형식 사용해보기 (0) | 2022.09.15 |