Recent Posts
Recent Comments
using System; using static System.Environment; class Program { static void Main(string[] args) { string option = "/exit"; switch (option) { case "/exit": Console.Write("/exit "); goto case "/writeBye"; case "/writeHI": break; case "/writeBye": Console.Write("bye!" + NewLine); goto default; case "/writeCopyright": break; default: goto gotoLable; } Console.WriteLine("It will be silent."); gotoLable: Console.WriteLine(@"Better the last smile than the first laughter. Yes, I know that everything comes to those who wait."); } }
goto의 사용은 현대의 프로그래밍에서는 권장하지 않고 있지만, switch 문 내에서의 제어이동을 위해 C#에서는 goto문을 제한적으로 허용한다.
- switch 문의 섹션 레이블로 분기하려면 'goto case 상수;' 구문을 사용한다.
- switch 문의 default 레이블로 분기하려면 'goto default;' 구문을 사용한다.
- switch 문의 섹션 레이블 외의 레이블로 분기하려면 '레이블 : 코드'를 작성한 뒤, 'goto 레이블명;'을 사용한다. 여기서 제약사항이 있는데, 이러한 goto 문이 코드 블록 내에서 분기하거나 바깥쪽 코드 블록으로 분기하는 데에만 사용될 수 있다는 것이다.
goto 문은 가독성에 혼란을 주기 때문에 사용을 지양해야 하지만, switch 문에서나 중첩된 반복문을 한번에 빠져나갈 때 유용하게 사용할 수 있다는 것을 알아두면 좋다.
Comments