일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Java
- Google Spreadsheet
- matplotlib
- Excel
- Tkinter
- Github
- Redshift
- math
- google apps script
- dataframe
- 파이썬
- PostgreSQL
- PANDAS
- Mac
- SQL
- string
- Apache
- django
- c#
- hive
- gas
- numpy
- Kotlin
- list
- Google Excel
- Python
- PySpark
- array
- GIT
- Today
- Total
달나라 노트
C# : break, continue, pass 본문
Python에서 반복문을 사용할 때 사용할 수 있는 break, continue, pass 의 기능을 C#에서도 거의 동일하게 제공합니다.
먼저 pass를 알아봅시다.
Python에서 pass는 어떤 함수나 반복문에서 그냥 아무것도 하지 않고 지나가는 역할을 합니다.
예를들어 Python에서는 함수를 선언만 하고 함수 안에 아무것도 적어두지 않으면 에러가 발생합니다. 그때 pass를 함수 안에 적어두면 에러가 발생하지 않죠. 아무 기능이 없는 함수를 만들 때에는 pass 키워드를 사용해야한다는 것입니다.
이것은 Python의 for loop, if ~ else 등 모든 부분에 해당합니다.
C#에서도 마찬가지로 pass와 동일한 기능을 구현할 수 있습니다.
using System;
class CardCatch
{
public static void Main()
{
int[] list_int = { 1, 2, 3, 4, 5, 6 };
for (int i = 0; i < list_int.Length; i++)
{
if (list_int[i] == 3)
{
}
else
{
Console.WriteLine(list_int[i]);
}
}
}
}
-- Result
1
2
4
5
6
C#에서는 Python에서처럼 pass 키워드는 없고 그냥 비워두면 됩니다.
if (list_int[i] == 3)
{
}
위 코드의 if 부분을 보면 if문의 내부가 비어있습니다.
즉, 마치 Python에서 pass를 적어둔 것과 같습니다.
따라서 list_int[i] == 3인 경우 아무것도 하지 않고 넘어가라는 의미입니다.
다음은 continue입니다.
Python에서 continue는 반복문 내부에 사용되며 continue가 실행된 즉시 바로 다음 단계의 for loop로 넘어갑니다.
index가 0부터 5까지 1씩 증가하는 반복문에서 index = 3일 때 continue를 만났다면 그 즉시 index = 4 단계로 넘어갑니다.
using System;
class CardCatch
{
public static void Main()
{
int[] list_int = { 1, 2, 3, 4, 5, 6 };
for (int i = 0; i < list_int.Length; i++)
{
if (list_int[i] == 3)
{
continue;
Console.WriteLine(list_int[i]);
}
else
{
Console.WriteLine(list_int[i]);
}
}
}
}
-- Result
1
2
4
5
6
위 코드는 continue를 적용한 예시입니다.
if (list_int[i] == 3)
{
continue;
Console.WriteLine(list_int[i]);
}
if 내부에는 continue와 WriteLine 두 줄이 적혀있습니다.
continue가 더 위쪽에 적혀있기 때문에 list_int[i] == 3인 경우 continue가 먼저 실행됩니다.
따라서 WriteLine이 실행되지 않고 그 즉시 다음 i로 넘어갑니다.
따라서 결과를 보면 3만 출력되지 않고 나머지 숫자가 출력된 것입니다.
다음은 break입니다.
break는 반복문 내부에서 사용되며 만나자 마자 break가 속한 반복문을 즉시 종료합니다.
using System;
class CardCatch
{
public static void Main()
{
int[] list_int = { 1, 2, 3, 4, 5, 6 };
for (int i = 0; i < list_int.Length; i++)
{
if (list_int[i] == 3)
{
break;
Console.WriteLine(list_int[i]);
}
else
{
Console.WriteLine(list_int[i]);
}
}
}
}
-- Result
1
2
위 코드는 break를 사용한 예시입니다.
if (list_int[i] == 3)
{
break;
Console.WriteLine(list_int[i]);
}
if 내부에 break가 존재합니다.
list_int[i] == 3인 경우 if문이 실행되며 if문 내부에는 break가 있습니다.
따라서 list_int[i] == 3 인 경우 바로 반복문이 종료됩니다.
그래서 결과를 보면 1과 2만 출력되고 그 이후는 출력되지 않은 것을 볼 수 있죠.
break에서 주의할 점은 break가 실행될 경우 break가 직접적으로 속한 반복문을 종료한다는 것입니다.
다중 for loop의 경우 내부 for loop에서 break가 실행되면 그 내부 for loop만 종료되는 것이고, 외부에 있는 for loop는 끝까지 실행됩니다.
다음 예시를 봅시다.
using System;
class CardCatch
{
public static void Main()
{
int[] list_int = { 1, 2, 3, 4, 5, 6 };
int[] list_int_2 = { 100, 200, 300 };
for (int i = 0; i < list_int_2.Length; i++)
{
Console.WriteLine(list_int_2[i]);
for (int j = 0; j < list_int.Length; j++)
{
if (list_int[j] == 3)
{
break;
Console.WriteLine(list_int[j]);
}
else
{
Console.WriteLine(list_int[j]);
}
}
}
}
}
-- Result
100
1
2
200
1
2
300
1
2
2개의 array를 이용한 2중 for loop입니다.
내부의 for loop에는 아래처럼 break가 있습니다.
if (list_int[j] == 3)
{
break;
Console.WriteLine(list_int[j]);
}
결과를 보면 list_int에서는 1과 2까지만 출력되고 3 이후로는 출력되지 않습니다.
내부 for loop에 속한 if에 있는 break가 실행됐기 때문입니다.
그러나 외부 for loop인 100, 200, 300은 모두 출력된걸 볼 수 있습니다.
이 말은 break는 break가 직접적으로 속해있는 반복문만을 종료시킨다는 것을 알 수 있습니다.
'C# > C#' 카테고리의 다른 글
C# : FillPie (부채꼴 그리기) (0) | 2022.05.18 |
---|---|
C# : FillEllipse (채워진 타원 그리기) (0) | 2022.05.18 |
C# : System.IO.Directory.GetFiles (디렉토리 내의 파일 list 얻기) (0) | 2022.05.09 |
C# : C# 코드를 exe 파일로 만들기. exe 파일 생성. 실행 파일 생성 (2) | 2022.04.21 |
C# : CurrentDirectory (현재 directory) (0) | 2022.04.21 |