본문으로 바로가기

C# 수업#4

category C# 2020. 5. 25. 22:04

안녕하세요~! 오늘 배운 강의에 대해 복습하면서 포스팅 해보겠습니다.

먼저, 5칙 연산을 배웠는데요! 5칙 연산에는 +(덧셈), -(뺄셈), *(곱셈), /(나눗셈), %(나머지) 연산이 있습니다.

위의 5칙연산 예제를 보면 알 수 있듯이 덧셈, 뺄셈, 곱셈은 저희가 아는 답이 나왔습니다. 하지만 나눗셈, 나머지 연산은 조금 다르게 나왔습니다. 5 / 3을 하면 1.66666666...이 나오지만 결과값에는 1이 나왔습니다. 이유는 정수형(int)로 값을 입력 받았기 때문에 소수점 자리를 뺀 정수 1만 출력을 해줍니다. %(나머지 연산)은 3으로 5를 나눴을 때 나머지 2만을 출력 해주는 것을 확인 할 수 있습니다.

 

다음으로는 if(제어문)을 배워보겠습니다. if문은 프로그래밍 제어구조에서 기본적으로 사용되는 구문으로 가장 기초적인 문법중의 하나이며 가장 많이 쓰이는 문법중 하나입니다.
if문의 역할은 어떤 조건이 주어졌을 때 그 조건이 참(true)인지 거짓(false)인지에 따라 각각 다른 명령문을 수행할 수 있게 도와주는 역할을 한다.

 

 

if문 예제

 

변수 iNum에 입력받은 수가 정수 100보다 큰지 비교하는 예제입니다. 200을 입력하였더니 if문의 조건에 맞아 문자열을 출력해주는 모습입니다. 하지만 조건이 맞지 않는다면 어떻게 될까요?

위의 예제와 같이 아무런 반응을 하지 않습니다. 또 다른 예제를 보겠습니다.

 

위의 예제는 10의 배수이면서 3의 배수를 구하는 if 조건문입니다. 입력받은 정수를 나머지 연산 10으로 나누었을 때 0이 나오면 10의 배수를 만족, 만족한 10의 배수가 3의 배수이면 문자열을 출력하는 예제입니다. 

위의 예제와 동일한 조건이지만 논리연산자를 사용하여 조건문을 만들었습니다.

 

논리 연산자AND(논리곱), OR(논리합), NOT(논리부정)을 표현하는 연산자 입니다.

&& AND(논리곱) 이항 연산자 둘다 참일 때 참 A && B
A와 B가 참일 때 참
|| OR(논리합) 이항 연산자 둘 중 하나라도 참이면 참 A || B
A가 참이거나 B가 참일 때 참
! NOT(논리부정) 단항 연산자 참이면 거짓, 거짓이면 참 !A
A가 참이면 거짓
A가 거짓이면 참

if-else문 예제

if-else문은 if 조건문을 제외한 나머지 조건을 else에서 출력해줍니다. 위의 예제와 같이 홀수 ,짝수를 구할 때 정수 5를 입력하였을때는 if문을 충족하지 못 하기 때문에 else문에서 "홀수입니다"를 출력해주고 정수 4를 입력하였을때는 if문을 충족하기 때문에 if문에서 "짝수입니다"를 출력해주는 모습입니다.

 

if-else if-else문 예제

위 예제는 if문으로 시작하여 else if에 또 다른 조건문 마지막으로 else문으로 나머지 조건을 충족시켜주는 학점을 구하는 예제입니다.

if-else문처럼 간단한 조건식이 아닌 조건이 여러가지 경우일 때 else if를 사용하여 세세하게 조건을 나누어 줘야 합니다.

 

위에서 배운 것들로 윤년과 평년을 구하는 방법을 알아 보겠습니다.

 

             *서력 기원 연수가 4로 나누어 떨어지는 해는 윤년으로 한다.
             *서력 기원 연수가 4, 100 으로 나누어 떨어지는 해는 평년으로 한다.
             *서력 기원 연수가 4,100,400으로 나누어 떨어지는 해는 윤년으로둔다.

첫번째 예제는 논리 연산자를 사용하지 않았고 두번째 예제는 논리 연산자를 사용하였습니다.

 

이번 예제는 증가 연산자 입니다. 맨 처음 변수 iNum의 값은 100이 였지만 ++iNum을 해준 결과 +1되어서 101이 되었습니다. 101이 된 iNum에 iNum = iNum + 1을 하여 101에 +1을 하여 다시 iNum에 대입하여 102가 나왔습니다.

 

iNum2와 iNum3를 비교할 때, iNum2는 ++iNum으로 먼저 값을 +1증가 한 후 값을 더하여 값 103을 도출 하였고 iNum3는 iNum++로 결과가 도출 된 후에 +1을 해주었습니다. iNum값은 +1이 증가되었지만 iNum3의 값은 디버깅이 끝난 후 +1을 해줍니다.

 

다음으로는 switch ~ case 조건문 입니다.

switch ~  case 조건문의 기본 구성 입니다.

switch(값)

{

    case (값):

           break;

    default:

           break;

}

if문과 같은 조건 제어문 이지만 if문처럼 조건식이 <,<=,>,>=와 같은 이상,이하,초과,미만같은 부등식이 사용될 수 없습니다. switch문은 괄호 안의 변수의 값과 동일한 값을 갖는 case로 가서 실행문을 실행시킵니다. 만약 괄호 안의 변수의 값과 동일한 값의 case가 존재하지 않다면 default로 가서 실행문을 실행시킵니다. default는 생략이 가능합니다.

 

그렇다면 범위가 있는 수를 구할 때는 어떻게 해야되는지 다음 예시를 보겠습니다.

iScore / 10을 해줌으로써 iScore에 98을 입력하였을때 나누기 10을 하여 9.8이 나오는데 int형은 정수만을 취급하기때문에 변수의 값과 동일한 값을 같는 case 9:에 대입이 되게 됩니다. 그렇기 때문에 90이상 정수를 넣었을 때 10을 나누기 때문에 모든 수가 case 9로 대입 되어 'A'학점을 받을 수가 있습니다.

 

3항 연산자

최대값을 구하는 예제가 있을 때, 이 경우 3항 연산자를 사용하여 간단하게 코딩할 수 있다.

3항 연산자 구조

비트 연산자

비트 연산자란? 바이트(byte) 단위보다 더 작은 비트(bit) 단위로 연산하는 연산자 입니다.

비트 연산자 표

bNum << 1 하였을 때는 곱하기 2, bNum >> 1 하였을 때는 나누기 2 를 한다고 생각하시면 됩니다.

 

갈수록 설명하기도 어려워지고 내용도 많아지네요ㅠ 부족한 설명 읽어주셔서 감사합니다!

이만 포스팅을 마치겠습니다 :)

Hasta Luego~!

'C#' 카테고리의 다른 글

C# 수업#6  (0) 2020.05.27
C# 수업#5  (0) 2020.05.26
C# 수업#3  (0) 2020.05.23
C# 수업#2  (0) 2020.05.21
C# (Visual Studio 2019 설치 방법) #1  (0) 2020.05.20