**제어문**은 프로그램 **실행 순서를 제어하거나 프로그램 내용을
반복하는 작업** 등을 처리할 때 사용하는 구문으로
**조건문과 반복문**으로 구분합니다.
int kor = 100;
int eng = 90;
int tot = 0;
double avg = 0.0;
tot = kor + eng;
avg = tot / 2.0;
Console.WriteLine("총점 : {0}", tot);
Console.WriteLine("평균 : {0:F1}", avg);
조건문(선택문) : 조건의 참 또는 거짓에 따라 서로 다른 명령문을 실행 (분기문, 비교판단문)
반복문 : 특정 명령문을 지정된 수만큼 반복해서 실행할 때나 조건식이 참일 동안 반복
기타 :
break문 : 반복문 내에서 반복을 중지
continue문 : 반복문 내에서 그다음 반복문으로 이동
goto문 : C#에서 자주 사용하지 않지만, 레이블(레이블 이름과 콜론(:)으로 만듦)로 지정된 곳으로 직접 이동.
<aside> 💡 if문과 가지치기 프로그램 흐름을 여러 가지 갈래로 가지치기(branching)할 수 있는데, 이때 if문을 사용. if문은 조건을 비교해서 판단하는 구문으로 (if, else, if, else) 세가지 키워드가 있음.
if(조건식) { 조건문의 조건을 만족할 때 실행할 실행문들… }
if문은 if(조건식) 실행문; 형태인데, 괄호 안의 조건식(논리식)이 참이면 실행문(문장)을 실행함. if 문은 다음과 같이 중괄호가 없는 형태로도 사용
→ 이 경우를 단문(single statement)라고 하는데, 실행문이 하나만 있을 때는 중괄호를 생략할 수 있다…?
</aside>
<aside> 💥 여기서 단문과 복문이란?
단문을 사용하는 if(조건식) 문장; 형태는 한 줄로 쓰거나 바로 그 다음 줄에 작성할 수 있다. 또한 괄호를 사용할 수도 있다. 복문이면 반드시 블록 기호인 중괄호({})가 있어야 한다!
</aside>
단문
if (1 == 1) Console.WriteLine("단문 1");
if (1 == 1) Console.WriteLine("단문 2");
if (1 == 1) { Console.WriteLine("단문 3"); }
복문
if (1 == 1) { Console.WriteLine("복문 A"); Console.WriteLine("복문 B"); }
$$ if문의 흐름을 그림으로 표시하면? → 순서도(flowchart) !!! $$
if문 괄호에는 조건식이 들어옵니다.
(score > =60)식 결과가 참이면 “합격”을 출력하는 실행문을 실행하고,
조건식 결과가 거짓이면 아무것도 실행하지 않는다.
// 문자열을 비교할때엔 대, 소문자 구분함!
if(int.TryParse("1234", out var result))
{
Console.WriteLine(result);
}
인라인 out 변수란 out var 형태의 코드로,
문자열에서 특정 값으로 변환되는 값을 담는 변수를 자동으로 선언해줌.
<aside> 💡 else문 else문은 단독으로 사용할 수 없고 if문 다음에 else문이 오는 구조. else문을 사용하면 if문 조건이 거짓일 때 원하는 실행문을 실행할 수 있어 두 방향으로 분기하는 구조.
각 조건문 아래에 명령이 한 줄인 경우 중괄호 생략가능!
</aside>
<aside> 💡 else if문 else if문 여러 개를 사용하여 다중으로 조건을 처리하고 마지막 else문을 기본값으로 사용하는 다중 if문임**.**
</aside>
→ 따라서 if문과 같은 조건문은 어떤 문제를 해결할 때
주로 해당 데이터를 필터링(걸러냄)하는 역할임.
<aside> 💡 조건문 : switch 문으로 다양한 조건 처리하기! 표현식 값이 값1 ~ 값n 중 하나와 일치하면 해당 실행문을 실행 일치하지 않으면 default 실행문을 실행. switch문에는 case는 상수값이 들어가고, default는 생략 가능함.
</aside>
<aside> 💡 반복문 : for문을 사용하여 구간 반복하기! for문은 특정 구문을 여러 번 반복(iteration)해서 실행할 때 사용. 일반적으로 for문을 지칭할 때 for 루프(loop)라고도 함!
for(초기식; 조건식; 증감식) { 실행문; }
</aside>
for(int i=0; i<3; i++){
Console.WriteLine("안녕");
}
1. int i = 0; -> 초기식 할당
2. 0 < 3; -> 비교하면 true가 되어 for문 진입
3. Console.WriteLine("안녕"); -> 출력
4. i++;를 실행하여 i변수 1증가
5. 1 < 3; -> 비교하면 true가 되어 for문 다시 진입
6. Console.WriteLine("안녕"); -> 다시출력
7. i++;를 실행하여 i 변수 1 증가
8. 2 < 3; -> 비교하면 true가 되어 for문 다시 진입
9. Console.WriteLine("안녕"); -> 다시출력
10. i++;를 실행하여 i 변수 1 증가
11. 3 < 3; -> 비교하면 false가 되어 for문 종료.
프로그래밍에서 알고리즘은
주어진 문제를 해결하는 절차를 의미!
일반적인 알고리즘은 입력(input), 처리(process), 출력(output) 절차를 거침.
1부터 100까지 짝수 합을 구하려면 1부터 100까지 범위와 짝수라는 조건이 필요.
이를 각각 for문과 if문을 사용하여 처리할 수 있음!
프로그래밍에서 **무한루프(infinite loop)**는 루프를 멈추지 않고
계속 실행하여 프로그램을 종료하지 않음을 의미!
for문을 2개를 사용하게 되면???
바깥쪽 for문은 일반적으로 행을 반복하는데 사용하고,
안쪽 for문은 열을 반복할 때 사용함!
for문으로 1부터 4까지 팩토리얼 값을 출력하는 프로그램
여기서 팩토리얼이란?
-> 1부터 양의 정수 n까지 정수를 모두 곱한 것!
1~4 팩토리얼 값은 1*2*3*4의 결괏값인 24입니다.
static void Main(string[] args)
{
int fact = 0;
for (int i = 1; i <= 4; i++)
{
Console.WriteLine($"{i}! -> ");
fact = 1;
for (int j = 1; j <= i; j++)
{
fact = fact * j;
}
Console.WriteLine($"{fact,2}");
}
}
<aside> 💡 **while문과 do문, foreach문으로 반복 처리하기!
while문은 조건식이 참일 동안 문장을 반복 실행**함!
while(조건식) { 조건식이 참일 때까지 실행할 문장들… }
</aside>
<aside> 💡 do while(반복)문으로 최소 한 번은 실행하기!
반복문인 do문을 보면 while문과 비슷하지만, 일단 문장을 한 번 실행한 후 그 다음에 조건을 따집니다.
do{
실행문;
}while (조건식);
do문 조건식이 true일 동안 실행문을 반복하여 실행합니다. 이때 do문은 마지막에 세미콜론 기호로 끝나야 하는 것에 주의합니다. do문은 while(조건식)이 뒤에 오므로 무조건 한 번은 실행문이 실행됩니다.
</aside>
<aside> 💡 foreach문으로 배열 반복하기!
foreach문은 배열이나 컬렉션같은 값을 여러 개 담고 있는 데이터 구조에서 각각의 데이터가 들어 있는 만큼 반복하는 반복문 입니다!
foreach(항목 in 항목들) {…}
foreach(데이터형식 변수 in 컬렉션형식 { 문장; }
</aside>
$$ 문자열은 그 자체가 문자 집합임! $$
string str = "ABC123";
foreach (char c in str)
{
Console.WriteLine($"{c}\t");
}
Console.WriteLine();
A
B
C
1
2
3