조건문, 반복문, 함수, 라이브러리

doyeon kim·2025년 1월 20일

C#

목록 보기
2/13

조건문

if

 Console.Write("숫자를 입력하세요");
            string input = Console.ReadLine();
            int val = int.Parse(input);
           
            if ((val % 2) == 0)
            {
                Console.WriteLine("짝수");
            }
            else
            {
                Console.WriteLine( val + " 은 홀수");
                Console.WriteLine("{0} 이면 홀수", val);
                Console.WriteLine($"{val} 이면 홀수");
            }

            Console.WriteLine("아무 키나 누르면 종료");
            Console.ReadKey();

변수를 표현하는 방법은 위와 같이 여려개! (1번 방식은 대형 프로젝트의 경우 지양(속도저하))

switch


반복문

for

Console.Write("반복 횟수를 입력하세요 : ");
            string input = Console.ReadLine();
            int loop = int.Parse(input);

            for(int i = 0; i<loop; i++)
            {
                Console.WriteLine($"{i+1} 번째 반복문");
            }

            Console.ReadKey();

초기값을 가지고 비교(i<1oop), 참이면 내부 코드를 실행하고 증감문 실행, 거짓이면 반복문 탈출

예제(별 출력)


 int rows = 5;

        for (int i = rows; i >= 1; i--) // rows부터 1까지 반복
        {
            for (int j = 1; j <= i; j++) // i개의 별 출력
            {
                Console.Write("*");
            }
            Console.WriteLine(); // 줄바꿈
        }
        
        **출력결과**
        
        *****
        ****
        ***
        **
        *
        
int rows = 5;

        for (int i = 1; i <= rows; i++)
        {
            // 공백 출력
            for (int j = 1; j <= rows - i; j++)
            {
                Console.Write(" ");
            }
            // 별 출력
            for (int k = 1; k <= 2 * i - 1; k++) // 홀수 개의 별 출력
            {
                Console.Write("*");
            }
            Console.WriteLine();
        }
		
        **출력결과**
        
            *
           ***
          *****
         *******
        *********

예제(구구단)

 for (int dan = 2; dan <= 9; ++dan)
            {
                for (int val = 2; val <= 9; ++val)
                {
                    Console.WriteLine($"{dan} * {val} = {dan * val}");
                }
            }

while

반복 횟수를 정확히 모를 때 주로 사용

int i = 0;
int count = 0;
while(count < 10)
{
	i += count;
	count++;
}

            Console.WriteLine(i);

break, continue

방법1
  for (int dan = 2; dan <= 9; ++dan)
            {

                for (int val = 2; val <= 9; ++val)
                {
                    if (dan == 3)
                    {
                        break;
                    }
                    Console.WriteLine($"{dan} * {val} = {dan * val}");
                }
            }
            
	Console.ReadKey();
    
           
방법2
	 for (int dan = 2; dan <= 9; ++dan)
            {

                if (dan == 3)
                {
                    continue;
                }

                Console.WriteLine($"\n{dan} 단\n");

                for (int val = 2; val <= 9; ++val)
                {
                    Console.WriteLine($"\t{dan} * {val} = {dan * val}");
                }  
            }
            Console.ReadKey();

break : 가장 가까운 반복문(for, while, switch)을 그대로 탈출
continue : 증감문 식으로 이동(증감문 수행 후 다시 반복)


함수

한정자 반환타입 함수이름 (매개변수) {return} 형태

static int Hap(int p_a, int p_b)
        {
            return p_a + p_b;
        }

static void Main(string[] args)
        {
            Hap(1, 2);
        }

함수 호출 시 매개변수에 맞게 호출


오버라이딩

함수 이름이 같아도 매개변수의 타입이나 개수가 다르면 사용 가능

 static int FN2(int p_val)
        {
            p_val = 20;
            int a = 20;
            int b = 10;
            return p_val + p_val;
        }

        static void Main(string[] args)
        {

            int a = 10;
            FN2(a);
            Console.WriteLine(a);
        }
        
        => 10 그대로 나옴    

main 공간에 저장된 변수a 와 FN2 공간에 매개변수로 전달된 p_val 은 별개 => 출력하는 a는 그대로 10


ref 함수

static int RefFN( ref int p_val)
        {
            p_val = 30;
            return p_val;
        }
        
static void Main(string[] args)
        {

            int val = 10;
            RefFN(ref val);

            Console.Write(val);


            Console.ReadKey();
        }
        
        => 30 출력

변수 값이 아니라 변수의 주소 값이 전달됨 => val 값을 변경하면 main 의 val도 변경


기본값 지정

static int Hap(int p_a, int p_b = 20, int p_c = 30)
        {
            return p_a + p_b + p_c;
        }
        
         Hap(1, 2, 3);  // => 1+2+3 으로 계산
         Hap(1,2); //	=>	1+2+30 으로 계산 

라이브러리

동일한 함수를 여러 번 작성하지 않기 위해 한번 만든 코드를 참조하여 여러 번 사용

예제

  • 프로젝트에 원하는 함수를 선언

  • 라이브러리를 사용하고자 하는 프로젝트에 참조 -> 참조 추가 -> 프로젝트 이후 그림과 같이 진행하면 참조에 MyLibrary 가 생성

  • 이미지와 같은 방식으로 진행하여 MyLibrary 프로젝트의 GetDigit 메서드를 사용할 수 있도록 한다.

0개의 댓글