개발꿈나무
[C# 교과서] 4. C# 기초(3) - 제어문, 조건문, 반복문 본문
제어문 소개 및 if/else 문
제어문
제어문은 프로그램 실행 순서를 제어하거나 프로그램 내용을 반복하는 작업 등을 처리할 때 사용
- 순차문: 기본적으로 모든 실행문은 순서대로 실행
- 조건문(선택문): 조건의 참 또는 거짓에 따라 서로 다른 명령문을 실행 (EX)if문, else문, switch문
- 반복문: 특정 명령문을 지정 수만큼 반복하거나 조건식이 참일 때 동안 반복 (EX) for문, do문, while문, foreach문
조건문: if문과 가지치기
if(조건식 1)
{
조건식 1을 만족할 때 실행할 실행문;
}
else if(조건식 2)
{
조건식 1을 만족하지 않고, 조건식 2를 만족할 때 실행할 실행문;
}
else
{
조건식 1,2를 모두 만족하지 않을 때 실행할 실행문;
}
else if와 else절은 생략가능
using System;
Class Grade
{
static void Main()
{
int score = 60;
if(score >= 90)
{
Console.WriteLine("Good");
}
else if(score >= 70)
{
Console.WriteLine("Normal");
}
else
{
Console.WritelINE("Bad");
}
}
}
// result: Bad
if(조건식)
실행문;
만약 실행문이 한 줄이라면 중괄호 생략 가능
중첩 if문
using System;
Class IfNested
{
static void Main()
{
string name = "C#";
int version = 8;
if(name == "C#")
{
if(version == 8)
{
Console.WriteLine($"{name} {version}");
}
}
}
}
//result: C# 8
if문으로 한 번에 조건 여러 개 처리하기
&&와 || 연산자를 사용하여 하나 이상의 조건을 함께 처리 가능
int number = 1234;
if(number >= 1000 && number == 1234)
{
Console.WriteLine("모두 참이라면 실행");
}
if(number >= 1000 || number == 12345)
{
Console.WriteLine("하나라도 참이라면 실행");
}
/*
<result>
모두 참이라면 실행
하나라도 참이라면 실행
*/
조건문: switch 문으로 다양한 조건 처리하기
switch문 소개
표현식 갑이 값1 ~ 값n 중 하나와 일치하면 해당 실행문을 실행, 일치하지 않으면 default 실행문을 실행
default 레이블은 생략 가능
switch(표현식)
{
case 값1: 실행문1; break;
case 값2: 실행문2; break;
...
case 값n: 실행문n; break;
default: 실행문; break;
}
using System;
Class SwitchExpression
{
static void Main()
{
int x = 2;
switch(x)
{
case 1:
Console.WriteLine("This is 1");
break;
case 2:
Console.WriteLine("This is 2");
break;
}
}
}
//result: This is 2
입력 값에 따른 출력 구문을 switch 문으로 선택하기
입력값이 정수인 경우
using System;
using System.Console;
//원래 System.Console.WriteLine인데 System.Console을 using시켜줌으로써 그냥 WriteLine()만 써도 됨
Class Switch
{
static void Main()
{
WriteLine("가장 좋아하는 프로그래밍 언어는? ");
Write("1. C\t");
Write("2. C++\t");
Write("3. C#\t");
Write("4. Java\t");
int answer = Convert.ToInt32(ReadLine());
switch (answer)
{
case 1:
WriteLine("C 선택");
break;
case 2:
WriteLine("C++ 선택");
break;
case 3:
WriteLine("C# 선택");
break;
case 4:
WriteLine("Java 선택");
break;
default:
WriteLine("보기에 없는 답입니다.");
break;
}
}
}
/*
<result>
가장 좋아하는 프로그래밍 언어는?
1. C 2. C++ 3. C# 4. Java
3 (enter)
C# 선택
*/
입력값이 문자열인 경우
using System;
Class SwitchWeather
{
static void Main()
{
Console.WriteLine("오늘 날씨는 어떤가요? (맑음, 흐림, 비, 눈, ...)");
string weather = Console.ReadLine();
switch (weather)
{
case "맑음":
Console.WriteLine("오늘 날씨는 맑군요.");
break;
case "흐림":
Console.WriteLine("오늘 날씨는 흐리군요.");
break;
case "비":
Console.WriteLine("오늘 날씨는 비가 오군요.");
break;
default:
Console.WriteLine("혹시 눈이 내리나요?");
break;
}
}
}
/*
<result>
오늘 날씨는 어떤가요? (맑음, 흐림, 비, 눈, ...)
안개 (enter)
혹시 눈이 내리나요?
*/
반복문(for 문)을 사용하여 구간 반복하기
for문으로 반복하기
gor문은 특정 구문을 여러번 반복해서 실행할 때 사용
for (초기식; 조건식; 증감식)
{
실행문;
}
for문의 기본 구조는 다음과 같다.
초기식부터 조건식까지 증감식 크기만큼 증가 또는 감소시키면서 작업 명령문을 반복하여 실행
for문을 이용하여 'Hello' 세 번 출력하기
using System;
Class ForDescription
{
static void Main()
{
for(int i = 0; i < 3; i++) //i가 0, 1, 2일 때 실행
{
Console.WriteLine("Hello");
}
}
}
/*
<result>
Hello
Hello
Hello
*/
짝수 합 구하기
using System;
Class ForSumEven
{
static void Main()
{
int n = 10
int sum = 0;
for(int i = 1; i <= n; i++)
{
if(i % 2 == 0)
{
sum += i;
}
}
Console.WriteLine($"1부터 {n}까지 짝수의 합: {sum}");
}
}
//result: 1부터 10까지 짝수의 합: 30
for문을 사용하여 별표 기호로 삼각형 만들기
using System;
class ForTriangle
{
static void Main()
{
for(int i = 0; i< 5 ; i++) //행 반복
{
for(int j = 0; j < i; j++) //열 반복
{
Console.Write("*");
}
Console.Write("\n");
}
}
}
/*
<result>
*
**
***
****
*/
무한 loop
프로그래밍에서 무한 루프(Infinite Loop)는 루프를 멈추지 않고 계속 실행하여 프로그램을 종료하지 않음을 의미
잘못 작성한 코드로 무한 루프가 발생하면 프로그램에 심각한 문제가 생기기 때문에 주의해야 함
using System;
Class InfiniteLoop
{
static void Main()
{
for( ; ; )
{
Console.WriteLine("무한루프");
}
}
}
/*
<result>
무한루프
무한루프
무한루프
...
(생략)
*/
구구단을 가로로 출력하기
using System;
class TimesTable
{
static void Main()
{
for(int a = 2; a < 10; a++)
{
Console.Write($"{a}단\t");
}
Console.WriteLine();
for(int i = 1; i < 10; i++) //행(세로) 출력
{
for(int j = 2; j< 10; j++) //열(가로) 출력
{
Console.Write($"{j}*{i}={i*j}\t");
}
Console.WriteLine();
}
}
}
while문과 do문, foreach 문으로 반복 처리하기
while문
while문은 조건식이 참일 동안 문장을 반복 실행
while(조건식)
{
조건식이 참일 때까지 실행할 문장;
}
while 문의 기본 구조는 다음과 같다.
while 문으로 'Hello' 여러 번 출력하기
using System;
Class WhileDescription
{
static void Main()
{
int i = 0;
while(i < 3)
{
Console.WriteLine("Hello");
i++;
}
}
}
/*
<result>
Hello
Hello
Hello
*/
while 문을 사용하여 짝수 합 구하기
using System;
Class WhileSumEven
{
static void Main()
{
int i = 1;
int sum = 0;
while(i <= 100)
{
if(i % 2 == 0)
{
sum += i;
}
i++;
}
Console.WriteLine($"1부터 100까지 짝수의 합: {sum}");
}
}
//result: 1부터 100까지 짝수의 합: 2550
피보나치 수열을 while 문으로 표현하기
// 피보나치 수열: 1 1 2 3 5 8 13 21 ...
using System;
class WhileFibonacci
{
static void Main()
{
int first = 0;
int second = 1;
while (second <= 20)
{
Console.Write($"{second} ");
int temp = second;
second += first;
first = temp;
}
}
}
// result: 1 1 2 3 5 8 13
do while 반복문으로 최소 한 번은 실행하기
do while
do
{
실행문;
} while(조건식);
do while 문을 사용하여 'Hello' 세 번 출력하기
using System;
class DoWhile
{
static void Main()
{
int i = 0;
do
{
Console.WriteLine("Hello"); //실행문
i++; //증감식
} while (i < 3); //조건식
}
}
/*
<result>
Hello
Hello
Hello
*/
1에서 100까지 3의 배수이면서 4의 배수인 정수 합 구하기
using System;
class DoWhileDemo
{
static void Main()
{
int i = 1;
int sum = 0;
do
{
if(i % 3 == 0 && i % 4 == 0)
{
sum += i;
}
i++;
} while (i < 101);
Console.WriteLine($"1부터 100까지 3과 4의 배수의 총 합: {sum}");
}
}
//result: 1부터 100까지의 3과 4의 배수의 총 합: 432
foreach 문으로 배열 반복하기
foreach
foreach는 배열(array)이나 컬렉션(collection) 같은 값을 여러 개 담고 있는 데이터 구조에서 각각의 데이터가 들어있는 만큼 반복하는 반복문
foreach (항목 in 항복들)
{
실행문;
}
문자열에서 문자 하나씩 뽑아 출력하기
using System;
class ForEach
{
static void Main()
{
string str = "ABC123";
foreach(char c in str)
{
Console.Write($"{c} ");
}
Console.WriteLine();
}
}
//result: A B C 1 2 3
break, continue 문으로 반복문 제어하기
break 문
break 문은 반복문(for, while, do)을 빠져나올 때 사용됨
무한루프 빠져나오기
using System;
Class BreakInfiniteLoop
{
static void Main()
{
int number = 0;
while (true) // 무한루프
{
Console.WriteLine(++number);
if(number >= 5)
{
break; //무한루프 탈출
}
}
}
}
/*
<result>
1
2
3
4
5
*/
break문을 사용하여 while 문 빠져나오기
using System;
class WhileBreak
{
static void Main()
{
int goal = 22;
int sum = 0;
int i = 1;
while (i <= 10)
{
sum += i;
if (sum >= goal)
{
break; // 반복문 탈출
}
i++;
}
Console.WriteLine(
$"1부터 {i}까지의 합은 {sum}이고, 목표치 {goal}이상을 달성했습니다.");
}
}
//result: 1부터 7까지의 합은 28이고, 목표치 22 이상을 달성했습니다.
continue 문
continue 문을 사용하면 일부 코드 실행하지 않고 건너뛸 수 있음
continue 문으로 코드 건너뛰기
using System;
class ForIfContinue
{
static void Main()
{
for (int i = 1; i <= 5; i++)
{
if (i % 2 == 0)
{
//[!] 현재 반복 중지 후 다음 반복으로 이동
continue; // 짝수 건너뛰기
}
Console.WriteLine(i); // 1, 3, 5
}
}
}
/*
<result>
1
3
5
*/
'C# 기초' 카테고리의 다른 글
[C# 교과서] 6. C# 기초(5) - 함수 사용하기 (0) | 2022.01.14 |
---|---|
[C# 교과서] 5. C# 기초(4) - 배열 사용하기 (0) | 2022.01.14 |
[C# 교과서] 3. C# 기초(2) - 연산자 (0) | 2022.01.11 |
[C# 교과서] 2. C# 기초(1) - 변수, 데이터 형식 (0) | 2022.01.11 |
[C# 교과서] 1. C# 준비 (0) | 2022.01.11 |