일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 유니티
- c#
- 포인터
- git
- gitlab
- vim
- Houdini
- jupyter
- Python
- c# winform
- 깃
- C++
- c# 추상 클래스
- 구조체
- HTML
- Data Structure
- Unity
- 플러터
- c언어
- jupyter lab
- Flutter
- 도커
- 다트 언어
- Algorithm
- C언어 포인터
- github
- C# delegate
- docker
- dart 언어
- c# 윈폼
Archives
- Today
- Total
nomad-programmer
[Programming/C#] goto 문 본문
goto 레이블;
레이블:
// 코드
goto 문은 레이블이 가리키는 곳으로 바로 뛰어 넘어간다.
상당수의 프로그래머들은 goto문을 별로 좋아하지 않는다. goto문이 코드의 흐름을 자주 끊어 읽기 어렵게 만들기 때문이다.
컴퓨터 과학 학계에서는 "goto의 해악"을 주제로 하는 논문도 여러 편 발표된적이 있다.
그럼에도 불구하고 goto문도 유용한 경우가 있는데. 다음 코드처럼 대표적인 예가 중첩된 반복문을 단번에 뚫고 나오기 위해 사용하는 것이다.
using System;
namespace CSharpExam
{
class GotoExample
{
static int Main(string[] args)
{
Console.Write("종료 조건 입력: ");
string input = Console.ReadLine();
int input_number = Convert.ToInt32(input);
int exit_number = 0;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
for (int k = 0; k < 3; k++)
{
if (exit_number++ == input_number)
goto EXIT_FOR;
Console.WriteLine(exit_number);
}
}
}
goto EXIT_PROGRAM;
EXIT_FOR:
Console.WriteLine("\nExit nested for...");
EXIT_PROGRAM:
Console.WriteLine("Exit program...");
return 0;
}
}
}
/* 결과
종료 조건 입력: 5
1
2
3
4
5
Exit nested for...
Exit program...
*/
'Programming > C#' 카테고리의 다른 글
[Programming/C#] 출력 전용 매개 변수 (0) | 2020.09.07 |
---|---|
[Programming/C#] 참조자 (0) | 2020.09.07 |
[Programming/C#] switch 문에서 데이터 형식에 따른 조건 (0) | 2020.09.06 |
[Programming/C#] null 병합 연산자 (0) | 2020.09.06 |
[Programming/C#] null 조건부 연산자 (0) | 2020.09.06 |
Comments