(25/06/18)반복문

허윤·2025년 6월 18일

odd Num 구하기

        public static void Main()
        {
            for (int i = 1; i < 100;)
            {
                Console.WriteLine(i);
                // for 인수에 i++를 넣어 i%2 == 1 일때만 출력하는것도 가능하나 루프횟수와 %연산자의 퍼포먼스 최적화를 고려하여 작성
                i += 2;
            }
            int n = 1;
            while (n < 100)//검사 후에 반복
            {
                Console.WriteLine(n);
                n += 2;
            }
            n = 1;
            do//검사 이전에 반복
            {
                Console.WriteLine(n);
                n += 2;
            } 
            while (n < 100);
        } 

Sum,Average 구하기

        public static void Main()
        {
            int[] arr = new int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            int s = 0;
            int len = arr.Length;
            //반복문 3종을 이용하여 사용하기에 Linq기능 제외

            for (int i = 0; i < len; i++)
            {
                s += arr[i];
            }
            Console.WriteLine($"Sum : {s}");
            Console.WriteLine($"Average : {s/len}");
            
            s = 0;
            int idx = 0;
            while (idx < len)
            {
                s += arr[idx];
                idx++;
            }
            Console.WriteLine($"Sum : {s}");
            Console.WriteLine($"Average : {s/len}");

            idx = 0;
            s = 0;

            do
            {
                s += arr[idx];
                idx++;
            } while (idx < len);

            Console.WriteLine($"Sum : {s}");
            Console.WriteLine($"Average : {s / len}");

        }

팩토리얼

	public static void Main()
	{
		Console.Write("Enter a number: ");
		int inputNum = int.Parse(Console.ReadLine());
		int n = 1;
		for (int i = 1; i <= inputNum; i++)
		{
		n *= i;
		}
		Console.WriteLine($"Factorial of {inputNum} is {n}");
	}

난수발생

        public static void Main()
        {
            int inputAge = -1;
            int age = new Random().Next(0, 101);
            do
            {
                Console.Write("Enter your guess (1-100): ");
                inputAge = int.Parse(Console.ReadLine());
                if (inputAge != age) Console.WriteLine(inputAge > age ? "Too high! Try again." : "Too low! Try again.");
            } while (age != inputAge);
            Console.WriteLine("Congratulations! You guessed the number.");
        }

구구단, 열맞추기

        public static void Main()
        {
            Console.WriteLine("세로");
            //세로처리
            for (int i = 2; i <= 9; i++)
            {
                for (int j = 1; j <= 9; j++)
                {
                    int mul = i * j;
                    int len = 4-mul.ToString().Length;
                    Console.Write($"{i} X {j} = {mul}");
                    for (int k = 0; k < len; k++)
                    {
                        Console.Write(' ');
                    }
                }
                Console.Write('\n');
            }
            Console.WriteLine("\n\n\n가로");
            //가로처리
            for (int i = 1; i <= 9; i++)
            {
                for (int j = 2; j <= 9; j++)
                {
                    int mul = i * j;
                    int len = 4 - mul.ToString().Length;
                    Console.Write($"{j} X {i} = {mul}");
                    for (int k = 0; k < len; k++)
                    {
                        Console.Write(' ');
                    }
                }
                Console.Write('\n');
            }
        }

Min,Max 찾기

    public partial class PTTest
    {
        public int asdf;
        private int gg;
    }
    public partial class PTTest
    {
        private int gg;
        public void init()
        {
            asdf = 1;
        }
    }
    1. 오늘 학습 키워드
    • 반복문
    1. 오늘 학습 한 내용을 나만의 언어로 정리하기
    • do-while문은 처음본 반복문이었기에 문제를 처음 마주했을때 혼란이 있었다.
    • while문과의 차이는 do-while은 최소 1번의 루프를 보장한다는 부분이 차이점인 것 같다
    • 구구단의 Len을 사용하여 배열을 맞춘것은 이전에 C# 서버구현시에 패킷처리 경험에서 영감을 받았다.
      직관적인 반복문 네이밍 덕분에 큰 어려움은 없었다.
    1. 학습하며 겪었던 문제점 & 에러
    • 문제&에러에 대한 정의
      • Console.Write는 가장 앞에있는 char만을 아스키값으로 바꾼다는걸 간과하여 입력을 받을때 에러가 발생하였다.
    • 내가 한 시도와 해결 방법
      • Console.WriteLine으로 string으로 받은 뒤 Parse하는 방법을 선택하였다, 다행히 잘 통했다.
    • 새롭게 알게 된 점
      • do-While 반복문과 netFrameWork의 Random클래스에 대해서 알게 되었다, 유니티로 작업할때는 유니티 라이브러리의 Random라이브러리를 사용하였는데 netFrameWork의 유니티 외의 환경에서도 유용하게 사용 할 수 있을 것 같다.
    • 이 문제&에러를 다시 만나게 되었다면?
      • Console.Write의 리턴값이 int라는것을 확인했으니 이후 코드 작성시에 문자열을 int로 리턴한다면 이 케이스를 적용하여 디버깅 할 수 있을 것 같다.
    1. 내일 학습 할 것은 무엇인지
    • 일단 사전캠프에서 제공하는 게임만들기 인강과제와 팀원과 함께하는 과제가 있는데 나는 조금 늦게 합류를 하였기에
      타 팀원분들이 아직 팀과제를 하지 않으셨다면 같이 진행하거나 그 외엔 게임만들기 인강 과제부터 끝낼 것 같다.
profile
C# 클라이언트 프로그래밍 지망

0개의 댓글