UD_park's IT story
[C#] 선택문(if) 개념 및 사용법[1 - 2] 본문
[이 포스팅은
시작하세요! 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문의 조건식 순서도 잘 정하셔야 합니다
혹시 다른것에 대해 궁금하신게
있으시다면
댓글에 달아주세요
아는것이면 친절하게 쉽게
모르는것이면 또 제가 알아내서
친절하게 쉽게 포스팅해서
설명해드리겠습니다
'IT - Language > C#' 카테고리의 다른 글
[C#] 컴퓨터 IP 출력하기(feat.DNS에 대한 개념과 설명) (0) | 2018.07.02 |
---|---|
[C#] 선택문(switch) 개념 및 사용법[1 - 3] (0) | 2018.06.26 |
[C#] 배열/다차원 배열(feat.가변배열)의 기본 개념과 사용법 (0) | 2018.06.26 |
[C#] 제어문과 선택문(관계/논리 연산자) 개념 및 사용법[1 - 1] (0) | 2018.06.26 |
[C#] 형 변환의 기본 개념과 사용법 (2) | 2018.06.25 |