goto는 프로그램의 흐름을 바꾸는 명령으로
어떤 상황일 때 코드의 특정부분으로 가서 동작하게끔 할 수 있다.
주로 반복문이나 조건문에서 많이 사용한다.

다음 코드는 내 다른 블로그에 적어 놓은 코드를 가져온 것으로,
첫 번째 또는 두 번째에 입력값을 받아서 숫자가 아니거나 음수인 경우 다시 입력값을 받는 곳으로
돌아가서 작동하게 하는 코드이다.

static void Main(string[] args)
{
    while (true)
    {
        int iFirst = 0, iSecond = 0;
 
        First: // 돌아올 지점1
        Console.Write("What is the first number? ");
        string firstNum = Console.ReadLine();
 
        if (!int.TryParse(firstNum, out iFirst))
        {
            goto First; // 첫 번째 입력값을 받으러 돌아올 지점1로 이동.
        }
 
        if (iFirst < 0)
        {
            goto First; // 첫 번째 입력값을 받으러 돌아올 지점1로 이동.
        }
 
        Second: // 돌아올 지점2
        Console.Write("What is the second number? ");
 
        string secondNum = Console.ReadLine();
 
        if (!int.TryParse(secondNum, out iSecond))
        {
            goto Second; // 두 번째 입력값을 받으러 돌아올 지점2로 이동.
        }
 
        if (iSecond < 0)
        {
            goto Second; // 두 번째 입력값을 받으러 돌아올 지점2로 이동.
        }
 
        Console.WriteLine("{0} + {1} = {2}", iFirst, iSecond, iFirst + iSecond);
        Console.WriteLine("{0} - {1} = {2}", iFirst, iSecond, iFirst - iSecond);
        Console.WriteLine("{0} * {1} = {2}", iFirst, iSecond, iFirst * iSecond);
        Console.WriteLine("{0} / {1} = {2}", iFirst, iSecond, iFirst / iSecond);
    }
}


+ Recent posts

티스토리 툴바