반응형
SMALL
- 정의
- 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문
- 프로그램이 처리하는 대부분의 코드는 반복 적인 형태가 많으므로, 가장 많이 사용되는 제어문 중 하나 이다.
- C# 에서 반복문의 종류 : for, foreach ,while, do while
- for문
- 반복하기 위하여 횟수를 관리한다.
- C# 의 구성요소는 초기식, 조건식, 증감식 세가지로 구성되어 있다.
- 초기식 : 횟수를 관리하기 위한 변수를 생성
- 조건식 : 해당 횟수가 반복 및 종료되는 조건, 비교연산자를 사용하여 조건을 체크할 수 있다.
- 증감식 : 코드 블럭이 실행 시 발생되는 증가나 감소의 식
- 증감식은 꼭 증감, 감소 연산자가 아닐 수 있다.
//for문의 기본구성
for(초기식,조건식,증감식)
{
//실행문 또는 코드
}
//for 문 예시
for(int i = 0; i < 10; ++i)
{
Console.WriteLine($"현재값은 {i}");
}
- foreach문
- 배열 또는 컬렉션 구조의 특화된 반복문으로써, 배열의 인덱스를 순차적으로 접근하여 데이터에 접근한다.
- 반복되는 코드를 보다 직관적이고 간결하게 구성할 수 있다.
- foreach 를 사용가능한 컬렉션은 IEnumerable 인터페이스를 상속받는다.
- IEnumerable 에서 GetEnumerator() 메서드를 통해서 객체를 하나씩 가져온다
//foreach문의 기본구성
foreach(데이터타입 변수명 in 배열_또는_컬렉션)
{
코드
}
//예시
int[] array = new int[1,2,3,4,5,6,7];
foreach(int num in array)
{
Console.WriteLine($"현재값은 : {num}");
}
//foreach 의 저수준 작성
using (var enumrator = array.GetEnumerator())
while(enumrator.MoveNext())
{
var element = enumrator.Current;
Console.WriteLine(element);
}
- while 문
- loop 시작 부분에서 평가되는 조건이 False 가 될 때 까지 코드내부의 실행문을 반복하는 반복문이다.
- 코드 내부에서 특정 조건이 만족되었을 때 while문을 강제로 종료 시킬 수 있다.
- while 조건을 항상 True 값으로 설정해 무한루프를 돌릴 수 있다.
// 기본 구성
while(조건)
{
// 실행문
}
// 정수형 변수를 통한 while 조건 체크
int i = 1;
while(i <= 5)
{
Console.WriteLine($"현재 값은 : {i}");
}
// bool 변수와 내부조건에 따른 while문 종료
bool check = true;
while(check)
{
if(String().ReadLine().toUpper() == "OK")
{
check = false;
Console.WriteLine("프로그램 종료 조건 True");
break;
}
}
// 무한 루프
int i = 1;
while(True)
{
Console.WriteLine($"무한 루프 반복 회수 : {i}");
++i;
}
- do while
- do while 문은 while문과 유사하나 do 문 안에 있는 반복 처리 구문을 true,false 여부와 상관없이 무조건 한번 실행 시킨 후 while문의 조건만큼 실행을 반복한다.
- do while 도 while 문과 동일하게 중간에 특정 조건을 만족할 시 break 를 통해 루프를 빠져나올 수 있다.
// 기본 구성
do
{
// 반복 처리 구문
} while(조건)
// 정수형 변수를 통한 예시
int i = 0;
do
{
Console.WriteLine("반복 처리 구문 ")
++i
}while(i < 3);
// break;를 통 한 do while 빠져나오기
bool check = true;
do
{
if(String.ReadLine().toUpper() == "OK")
{
check = false;
Console.WriteLine("프로그램 종료 조건 True");
break;
}
}while(check)
참고 )
- IEnumerable , IEnumerator
- IEnumerable
- List, Stack, Queue 와 같은 컬렉션에 반복이 필요한 경우 사용되는 인터페이스이다.
- IEnumerable 인터페이스는 객체를 반환하는 GetEnumerator() 메서드를 가지고 있다.
- foreach 구문 등에서 객체를 한개씩 넘겨주는 일을 한다.
- IEnumerator
- IEnumerable 은 Current, NextMove, Reset 이렇게 세가지 의 멤버 변수를 가지고 있다.
- Current
- 읽기 전용 프로퍼티로 현재 위치의 데이터를 Ojbect 형식으로 반환한다.
- NextMove
- 현재 위치에 다음 데이터 위치로 이동하고 있다면 True 없다면 False 반환
- 보통은 컬렉션 인덱스를 1씩 증가시켜 컬랙션의 끝에 도달했는지 bool 타입으로 구현
- Reset
- 인덱스를 초기 위치로 변경
- 컬렉션의 인덱스를 -1로 초기화
- Current
- IEnumerable 은 Current, NextMove, Reset 이렇게 세가지 의 멤버 변수를 가지고 있다.
- IEnumerable
- Continue
- 반복문들은 continue 제어문을 통하여 특정 조건을 건너 뛰는 코드를 작성할 수 있다.
// if문 continue
for(int i = 0; i < 10; ++i)
{
if(i == 7) continue; // 7을 건너 뛰게 된다.
Console.WriteLine($"현재 값은 : {i}")
}
// foreach문 continue
list<int> number = new list<int>{1,2,3,4,5,6,7,8,9,10}
foreach(var num in number)
{
if(i == 7) continue; // 7을 건너 뛰게 된다.
Console.WriteLine($"현재 값은 : {i}")
}
// while문 continue
int i = 0;
while(i < 10)
{
if(i == 7) continue; // 7을 건너 뛰게 된다.
Console.WriteLine($"현재 값은 : {i}")
++i
}
// do while문 continue
int i = 0;
do
{
if(i == 7) continue; // 7을 건너 뛰게 된다.
Console.WriteLine($"현재 값은 : {i}")
++i
}while(i < 10)
참고 자료 )
https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/statements/iteration-statements :: 반복문 - for, foreach, do, while
https://oppr123.tistory.com/ :: [C# 강의] 6.반복문
https://www.csharpstudy.com/CSharp/CSharp-looping.aspx :: foreach 반복문
https://ansohxxn.github.io/c sharp/enumerate/ :: enumerate
https://blog.hexabrain.net/132 :: 무한루프, 제어문
LIST
'Programming > Cs' 카테고리의 다른 글
[ Mac ] zsh-syntax-highlighting, neofetch Mac, ubuntu 설치하기 (0) | 2024.03.06 |
---|---|
[ Mac, Utm ] M1, M2 맥에서 UTM Ubuntu 복사, 붙여넣기 (0) | 2024.03.06 |
조건문 (2) | 2023.10.30 |
정수 자료형, 문자열, 논리 자료형 (1) | 2023.10.27 |
[Git] 깃허브 명령어 정리 (0) | 2022.09.17 |