전체 코드

namespace CSharp
{
    internal class Program
    {
        static void Main(string[] args)
        {

            //while (true)
            //{
            //    break;
            //}
            // for
            //for (int i = 0; i < 10; i++)
            //{
            //    // 특정 조건을 만나면 {}안을 나가고 싶을 경우의 키워드
            //    break;
            //}

            // 소수 판별기 
            // 소수 1과 자기 자신으로만 나뉘는 수
            int num = 97;

            bool isPrime = true;

            for (int i = 2; i < num; i++)
            {
                if((num % i) == 0)
                {
                    isPrime = false;
                    break; // for문이나 while문 등의 특정 키워드를 빠져나감
                    // if를 빠져나가는 개념이 아님
                }
            }
            if (isPrime)
            {
                Console.WriteLine("소수입니다.");
            }
            else
            {
                Console.WriteLine("소수가 아닙니다");
            }


            // continue
            // 넘어가 달라는 의미가 강함
            // 가독성 측면에서 좋아짐
            for (int i = 0; i < 100; i++)
            {
                if((i % 3) !=0)
                {
                    continue;
                }
               
                Console.WriteLine($"3으로 나뉘는 숫자 발견 : {i}");
                
            }
        }
    }
}

1. 개요

이 코드는 두 가지 중요한 제어문인 breakcontinue의 사용 예시를 보여줍니다.

  • break: 반복문 내에서 특정 조건을 만족할 때 즉시 전체 반복문을 종료합니다.
  • continue: 현재 반복문의 남은 부분을 건너뛰고 다음 반복으로 진행하게 합니다.

예제에서는 소수 판별기와 3으로 나누어 떨어지는 숫자 찾기 두 가지 사례로 각각의 제어문의 사용법을 보여줍니다.


2. 소수 판별기와 break

코드 분석

int num = 97;
bool isPrime = true;

for (int i = 2; i < num; i++)
{
    if ((num % i) == 0)
    {
        isPrime = false;
        break; // 반복문 내에서 조건을 만족하면 즉시 for문 전체를 종료
    }
}
if (isPrime)
{
    Console.WriteLine("소수입니다.");
}
else
{
    Console.WriteLine("소수가 아닙니다");
}

상세 설명

  • 변수 초기화:

    • num 변수는 97로 초기화되어 소수인지 판별할 대상 숫자를 나타냅니다.
    • isPrime 변수는 처음에 true로 설정되며, 만약 97이 1과 자기 자신 이외의 다른 수로 나누어 떨어지면 false로 변경됩니다.
  • for문 (반복문):

    • 반복문은 i = 2부터 i < num까지(즉, 2부터 96까지) 진행됩니다.
    • 이 반복문은 97이 2부터 96 사이의 어떤 수로도 나누어 떨어지는지 확인합니다.
  • if문과 break:

    • if ((num % i) == 0) 구문은 현재 숫자 i가 97을 나누었을 때 나머지가 0인지를 확인합니다.
    • 만약 나머지가 0이면, 즉 i가 97의 약수라면 isPrimefalse로 변경합니다.
    • 그 후 break 키워드가 실행되며, 이는 반복문 전체를 즉시 종료합니다.
      • 핵심 포인트: 한 번 약수가 발견되면 더 이상 반복을 계속할 필요가 없으므로 반복문을 조기에 종료함으로써 불필요한 연산을 줄입니다.
      • 주의할 점은 break는 if문 내부가 아니라 전체 for문을 빠져나가도록 작동한다는 것입니다.
  • 결과 출력:

    • 반복문이 종료된 후 isPrime 값에 따라 97이 소수인지 여부를 출력합니다.
    • true인 경우 "소수입니다."를, false인 경우 "소수가 아닙니다"를 출력합니다.

3. 3으로 나누어 떨어지는 숫자 찾기와 continue

코드 분석

for (int i = 0; i < 100; i++)
{
    if ((i % 3) != 0)
    {
        continue; // 3으로 나누어 떨어지지 않는 경우, 나머지 코드를 건너뛰고 다음 반복으로 진행
    }
   
    Console.WriteLine($"3으로 나뉘는 숫자 발견 : {i}");
}

상세 설명

  • 반복문 설정:

    • 반복문은 i = 0부터 i < 100까지(즉, 0부터 99까지) 수행됩니다.
  • if문과 continue:

    • if ((i % 3) != 0) 조건문은 현재 숫자 i가 3으로 나누어 떨어지지 않는지를 판단합니다.
    • 조건이 참이면 continue가 실행되어, 현재 반복문의 나머지 코드를 건너뛰고 다음 반복으로 즉시 넘어갑니다.
      • 핵심 포인트: continue는 반복문 전체를 종료하지 않고, 단지 현재 반복의 남은 부분만 건너뛰게 합니다.
  • 출력문:

    • 만약 i가 3으로 나누어 떨어진다면 if 조건이 거짓이 되어 continue가 실행되지 않고, Console.WriteLine이 호출되어 해당 숫자가 출력됩니다.
    • 이 방식으로 3의 배수에 해당하는 숫자들만 출력됩니다.

4. break와 continue의 차이점

  • break:

    • 용도: 반복문 전체를 종료하고, 반복문 다음에 있는 코드 블록을 실행.
    • 예시: 소수 판별기에서 약수를 찾은 즉시 반복을 종료하여 불필요한 연산을 줄임.
  • continue:

    • 용도: 현재 반복의 남은 코드를 건너뛰고 다음 반복으로 즉시 이동.
    • 예시: 3으로 나누어 떨어지지 않는 경우 출력문 실행을 건너뛰고 다음 숫자로 진행.

profile
李家네_공부방

0개의 댓글