[C#] 4일차 ( try~catch문, 각종 연산자 )C#/C#200제2021. 1. 19. 10:58
Table of Contents
18. DivideByZeroException과 try~catch문
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A018_DivideByZero
{
class Program
{
static void Main(string[] args)
{
int x = 10, y = 0;
Console.WriteLine(10.0 / y);
Console.WriteLine(x / y);
}
}
}
10.0 / y 는 실수를 0 으로 나누기때문에 무한을 출력
x / y를 할때 y값이 0 이기 때문에 0으로 나눔 예외가 발생
Try~Catch 문으로 예외처리
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A018_DivideByZero
{
class Program
{
static void Main(string[] args)
{
int x = 10, y = 0;
try
{
Console.WriteLine(x / y);
}
catch (Exception e)
{
Console.WriteLine(e.Message); // 예외를 설명하는 메세지를 가져온다.
}
}
}
}
19. OverflowException과 checked 키워드
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A019_Overflow
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("int.MaxValue = {0}", int.MaxValue);
int x = int.MaxValue, y = 0;
y = x + 10;
Console.WriteLine("int.MaxValue + 10 = {0}", y);
}
}
}
각 바이트에 1이 들어가 int.MaxValue를 만드는데, 거기에 10 = 2진수로 1010이 들어가 부호도 변경되고 값도 바뀜
Overflow메세지를 표시하기 위해서는 checked 키워드를 사용해아함.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A019_Overflow
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("int.MaxValue = {0}", int.MaxValue);
int x = int.MaxValue, y = 0;
// y = x + 10;
checked
{
try
{
y = x + 10;
}catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
Console.WriteLine("int.MaxValue + 10 = {0}", y);
}
}
}
20. 관계연산자
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A020_RelationalOperators
{
class Program
{
static void Main(string[] args)
{
bool result;
int first = 10, second = 20;
result = (first == second);
Console.WriteLine("{0} == {1} : {2}", first, second, result);
result = (first > second);
Console.WriteLine("{0} > {1} : {2}", first, second, result);
result = (first < second);
Console.WriteLine("{0} < {1} : {2}", first, second, result);
result = (first >= second);
Console.WriteLine("{0} >= {1} : {2}", first, second, result);
result = (first <= second);
Console.WriteLine("{0} <= {1} : {2}", first, second, result);
result = (first != second);
Console.WriteLine("{0} != {1} : {2}", first, second, result);
}
}
}
21. 논리연산자
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A021_LogicalOperators
{
class Program
{
static void Main(string[] args)
{
bool result;
int first = 10, second = 20;
result = (first == second) || (first > 5);
Console.WriteLine("{0} || {1} : {2}", first == second, first > 5, result);
result = (first == second) && (first > 5);
Console.WriteLine("{0} && {1} : {2}", first == second, first > 5, result);
result = true ^ false;
Console.WriteLine("{0} ^ {1} : {2}", true, false, result);
result = !(first > second);
Console.WriteLine("!{0} : {1}", first > second, result);
}
}
}
22. 비트연산자
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A022_BitwiseOperators
{
class Program
{
static void Main(string[] args)
{
int x = 14, y = 11, result;
result = x | y;
Console.WriteLine("{0} | {1} = {2}", x, y, result);
result = x & y;
Console.WriteLine("{0} & {1} = {2}", x, y, result);
result = x ^ y;
Console.WriteLine("{0} ^ {1} = {2}", x, y, result);
result = ~x;
Console.WriteLine("~{0} = {1}", x, result);
result = x << 2;
Console.WriteLine("{0} << 2 = {1}", x, result);
result = x >> 1;
Console.WriteLine("{0} >> 1 = {1}", x, result);
}
}
}
23. 조건연산자( ? : )
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A023_ConditionalOperator
{
class Program
{
static void Main(string[] args)
{
int input = Convert.ToInt32(Console.ReadLine());
string result = (input > 0) ? "양수입니다" : "음수입니다";
Console.WriteLine("{0}는 {1}", input, result);
Console.WriteLine("{0}는 {1}", input, (input % 2 == 0) ? "짝수입니다." : "홀수입니다.");
for(int i = 1; i <= 50; i++)
{
Console.WriteLine("{0,3}{1}", i, i % 10 != 0 ? "" : "\n");
}
}
}
}
반응형
'C# > C#200제' 카테고리의 다른 글
[C#] 6일차 - 32. 열거형 enum (0) | 2021.01.21 |
---|---|
[C#] 5일차 (문자, 문자열 정리) (0) | 2021.01.20 |
[C#] 3일차 ( Format과 연산자 처리) (0) | 2021.01.18 |
[C#] 2일차 (변수 선언 및 자료형, Console.WriteLine메소드) (0) | 2021.01.17 |
[C#] 1일차 (간단한 C#컴파일, 프로젝트만들기, 입출력) (0) | 2021.01.15 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!