Today
Total
Recent Posts
Recent Comments
Archives
05-19 03:21
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
반응형
관리 메뉴

UD_park's IT story

[C#] 선택문(if) 개념 및 사용법[1 - 2] 본문

IT - Language/C#

[C#] 선택문(if) 개념 및 사용법[1 - 2]

kingllzn 2018. 6. 26. 11:19
반응형
SMALL

[이 포스팅은

시작하세요! C# 7.1 프로그래밍의

내용을 발췌하였습니다]

 

[보기용 예제 소스 코드에서 오류 발생시에

댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다]

 

 

 

 

이번에는 지난 포스팅인 선택문에 관하여

계속 이어 가도록 하겠습니다

 

이번 포스팅에서 다룰 선택문은

 

① if문

② Switch문

두 개 중에서 ① if문입니다

 

 

어려운 상황에서도 if를 잘 쓰실 수있도록

쉽게 설명하려다 보니 포스팅 글이 길어졌습니다

천천히 집중해서 읽어주신다면

까다로운 상황에서도 if문을 잘 적용시키실 수

있을겁니다

 

 

 

그럼이제 ① if문에 대한 설명을

시작해 보도록 하겠습니다

 

 

if 문의 정의는 괄호 안에 조건식을 지정하고

그것의 평가 결과가 참이면 괄호가 끝난 다음의

구문 코드를 실행하고, 거짓이면 구문 코드를

실행하지 않고 다음으로 블록(Block)으로

넘어가게 됩니다

 

간단하게 말하면 if의 조건식이 true일 때만

동작을 실행하고 그 외에는 그냥 없는 아이

취급을 해버립니다

 

 

사용 문법에 대해서 알아보도록 하겠습니다

 

if (조건식)

{

구문;

}

 

else if (조건식)

{

구문;

}

 

else

{

구문;

}

 

위의 문법을 설명하자면 처음의 if문이 true이면

처음 if문 안에있는 구문 코드를 실행하고 그 밑에있는

else if와 else 조건식은 없는 아이 취급하게 됩니다

 

만약 첫 번째 if문이 false이고 두 번째 else if문이

true이면 else if문의 구문 코드가 실행되고

else는 없는 아이 취급하게 됩니다

 

그리고 3가지 if, else if, else 전부 다 false일 때

컴파일러는 저 셋의 구문 코드를 모두 없는 취급해

버리고 계속해서 컴파일을 진행하게 됩니다

 

그리고 한 가지 아셔야할 점은 else 부분입니다

else 부분은 if와 else if와 다르게

조건식이 붙지 않습니다

 

쉽게 이야기하자면 if와 그 뒤의 else if들의

모든 조건이 맞지 않는 모든 조건들을

else가 가지고 가버립니다

 

 

 

제가 만든 if문을 사용한 예제 보기를 통해

더욱 자세하게 설명해 보도록 하겠습니다

 

 

1 namespace If
2 {
3     class Program
4     {
5        static int flag = 0;
6        static int Prime(int Number)
7        {
8             for (int j = 1; j <= Number; j++)
9             {
10                for (int i = 1; i <= Number; i++)
11                {
12                    if (Number == (i * j))
13                    {
14                        flag = 1 + flag;
15                    }
16                }
17            }

18            return flag;
19        }
20        static void Main(string[] args)
21        {
22            int Number;
23            string sNumber;
24            Console.Write("Input even number(Data type : Int) : ");
25            sNumber = Console.ReadLine();
26            Number = Convert.ToInt32(sNumber);

27            Prime(Number);

28            if (flag == 2)
29            {
30                Console.WriteLine("Your Input number({0}) is Prime number", Number);
31            }
32            else if ((flag != 2) && (Number % 2 == 0))
33            {
34                Console.WriteLine("Your Input number({0}) is Even number.", Number);
35            }
36            else
37            {
38                Console.WriteLine("Your Input number({0}) is Odd number.", Number);
39            }
40        }
41    }
42 }

Prime함수는 소수를 구하기위한 함수입니다

그 안의 플래그는 소수인지 판별하기 위한 변수입니다

 

결과 화면입니다

 

 

만약 3을 입력 받았다면 j와 i[j - i]가 각 각 1 - 1, 1 - 2,

 1 - 3, 2 - 1, 2 - 2, 2 - 2, 3 - 1, 3 - 2, 3 - 3 이렇게

진행 되면서 j와 i를 곱한 값과 입력받은

Number이 같으면 붉게 표시한 부분처럼

나누어 떨어지는 수이기에

Prime 함수의 두 개의 for문 안에 위치하고있는 if에서

flag 값에 1을 추가합니다

 

만약 11이란 소수라면 1 * 11, 11 * 1

이 두개의 값이 성립하기에 소수인 값의

플래그는 2가 되겠습니다

 

만약 6이라면 [1 - 6], [2 - 3], [3 - 2], [6 - 1]의 곱한 값과

6이 같이지기에 플래그 값은 4가 되므로 약수의 조건인

flag = 2 아닌 더 큰 4라는 값이 flag에 저장됩니다

 

나머지 홀수 짝수 판별은

쉽게 2로 나누어서 나머지가 있는지

없는지에 따라 홀수와 짝수를 판별하도록

코드를 작성하였습니다

(32번 줄)

 

 

if문만 공부하고 싶으신 분이라면

28 - 39번 코드 줄을 봐주시면 되겠습니다

 

flag가 2일 때, 입력받은 수는 소수입니다

그렇기 때문에 첫 번째 if문에 조건식으로 정했습니다

만약 홀수인지 판별하는 조건식을 첫 번째 if문에 썼다면

 

홀수의 조건과 소수의 조건이(둘 다 홀수)

겹치기 때문에 앞서 말한 바와 같이 첫 번째가 아닌

그 다음의 if문에서 소수 조건을 걸어도

절대 동작하지 않습니다

 

따라서 구하시고자 하는 조건에 따라

if문의 조건식 순서도 잘 정하셔야 합니다

 

 

 

 

혹시 다른것에 대해 궁금하신게

있으시다면

댓글에 달아주세요

 

아는것이면 친절하게 쉽게

모르는것이면 또 제가 알아내서

친절하게 쉽게 포스팅해서

설명해드리겠습니다


반응형
LIST
Comments