Jump 문이라고도 알려진 C#의 Goto 문은 프로그램의 흐름을 레이블이 있는 문으로 직접 전송합니다. 이러한 명령문은 프로그램 제어를 다른 부분으로 이동합니다. Goto 문의 가장 일반적인 응용 프로그램 중 하나는 프로그램 제어를 switch 문의 특정 지점으로 이동하는 것입니다. 깊은 중첩 루프의 경우 goto 문은 루프에서 빠져나오는 훌륭한 기능이 될 수 있습니다. 중첩 루프는 계속되며 프로그램은 루프가 끝날 때까지 기다리다가 도중에 조건이 만족되면 goto 문을 구현하여 빠르게 루프에서 빠져나와 시간을 절약할 수 있습니다.
구문:
다음은 goto 문의 표준 구문입니다.
goto statement_name;
구문은 goto 키워드를 선언한 다음 문 이름을 사용하는 것으로 시작됩니다. 프로그램에서 이 행이 실행될 때마다 프로그램은 프로그램의 문_이름 부분으로 점프합니다. 어떤 프로그램이든, 언제, 어떤 시점에서든 위에서 언급한 goto 구문을 우연히 발견하면 goto 문을 실행하고 언급된 명령문_이름으로 점프하며, 이것이 제어가 전환되는 방식입니다.
이제 순서도에서 goto 문의 작동을 이해해 보겠습니다.
위 흐름도를 참고하면 goto 문을 사용하여 프로그램의 코드 흐름을 이해할 수 있습니다. 1, 2, 3이라는 여러 개의 문이 있고 코드가 진행되면서 세 번째 문에서 goto 문을 만나게 됩니다. 그리고 세 번째 문부터 코드는 goto 문이 가리키는 곳으로 점프합니다. 샘플에는 명령문 1을 참조하는 goto 문이 있습니다. 즉, 코드가 goto 문을 우연히 발견하면 조건을 확인하고 조건의 결과에 따라 코드가 앞으로 이동합니다. 프로그램이 종료되거나 goto 문이 실행되고 코드가 점프합니다.
Goto 문은 Jump 문입니다. 빠른 종료를 제공하는 방식으로 모든 프로그램에서 작동합니다. 작동 방식은 주어진 시간에 특정 지점으로 프로그램 제어를 전송하는 것이 C#의 Goto 문의 주요 목적입니다.
이제 Goto 문의 작동 방식을 이해했으므로 적절한 코드를 사용하여 Goto 문의 작동을 보여드리겠습니다.
코드:
using System; public class sampleGoto { public static void Main(string[] args) { eligibility: Console.WriteLine("You are not an adult yet!"); Console.WriteLine("Enter your age:\n"); int age = Convert.ToInt32(Console.ReadLine()); if (age < 18) { goto eligibility; } else { Console.WriteLine("You are an adult!"); Console.Read(); } } }
코드 해석: 네임스페이스 파일을 사용한 다음 내부의 메인 클래스로 클래스를 시작합니다. 그런 다음 "당신은 아직 성인이 아닙니다!"라는 인쇄문이 있는 goto 키워드 "eligibility"가 있습니다. 이 명령문을 인쇄한 후 프로그램은 계속해서 다음 줄을 실행합니다. 여기에 "연령을 입력하세요:"라는 문구가 인쇄될 것이며, 값을 입력해야 합니다. 값을 입력하면 프로그램은 if 문을 입력하고 조건을 확인합니다. 조건이 충족되면 코드는 누군가 18 이외의 값을 입력하는 경우 goto 문을 포함하는 다음 문으로 진행됩니다.
우리 프로그램이 goto 문을 건드리면 언급된 부분, 즉 자격으로 점프하고 그 지점부터 앞으로 나아갈 것입니다. 프로그램은 "당신은 성인입니다!"라는 메시지를 표시합니다. 조건을 충족하면 사용자에게 제공됩니다. 프로그램이 종료되었음을 의미합니다. 출력은 아래 첨부된 스크린샷을 참조하세요.
스크린샷에서 볼 수 있듯이 18보다 작은 값을 전달하면 첫 번째 문이 인쇄되고, 18보다 큰 값을 입력하면 프로그램이 else 문을 인쇄합니다. 이제 Goto 문을 사용하여 간단한 프로그램을 시연했으므로 동일한 작업을 수행하는 다른 예제를 시도해 보겠습니다.
코드:
using System; public class sampleGoto { public static void Main(string[] args) { result: Console.WriteLine("Sorry! you did not pass the test."); Console.WriteLine("Please submit your Passing Percentage:\n"); int age = Convert.ToInt32(Console.ReadLine()); if (age < 40) { goto result; } else { Console.WriteLine("Congrats! You have passed the Test"); Console.Read(); } } }
코드 해석: 첫 번째 프로그램과 유사하게 Goto 문의 작동을 시연했습니다. 간단한 조건으로 입력값이 40 이상인지 쉽게 확인할 수 있습니다. 프로그램을 실행하면 첫 번째 줄에 “Sorry! 당신은 시험에 합격하지 못했습니다.” 그런 다음 프로그램은 사용자에게 숫자 값을 입력하도록 요청합니다. 프로그램은 IF ELSE 루프를 입력하여 값을 입력한 후 입력된 값이 40보다 작거나 큰지 확인합니다. 입력한 값이 40보다 작으면 프로그램은 goto 문을 실행하고 레이블이 있는 문으로 점프합니다. 그리고 입력된 값이 40보다 크면 프로그램이 진행되어 else 부분을 입력합니다. 다른 부분에서는 “축하합니다!”를 인쇄합니다. 테스트에 합격하셨습니다.
올바른 출력을 위해 아래 첨부된 스크린샷을 참고하세요.
GOTO를 구현해야 할까요? 프로그램 로직이 더 복잡해지기 때문에 goto 문을 구현하거나 사용하지 않는 것이 좋습니다. 또한 프로그램이 goto 문을 만나면 코드 흐름을 추적하기가 쉽지 않습니다. 반대로 Goto를 사용하면 프로그램 흐름이 원활해질 것이라고 생각한다면 자유롭게 사용해도 됩니다. Goto는 거의 사용되지 않습니다.
C#의 Goto 문이 무엇인지 이해했습니다. 우리는 Goto 문의 작동 방식과 구문을 광범위하게 이해했습니다. 나중에 예를 들어 Goto 문의 작동을 시연했습니다. 우리는 서로 다른 시나리오의 두 가지 예를 사용하여 Goto 문을 구현했습니다. 긴 프로그램에서 Goto 문을 광범위하게 사용하는 것은 프로그램의 구조를 복잡하게 만들고 직접 디버깅하기가 더 어렵게 만들 수 있으므로 권장되지 않습니다.
위 내용은 C#의 Goto 문의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!