about 알고리즘 문제 약수의 합
public class Solution
{
public int solution(int n)
{
int answer = 0;
for (int i = 1; i <= n; i++)
{
if (n % i == 0)
{
answer = i + answer;
}
}
return answer;
}
}
오늘 문제를 풀면서 갑자기
숫자를 0 으로 나누면 어떠한 결과가 나오는건지 헷갈리기 시작하면서 멘붕이 왔다.
일단 정리를 하면,
일반적으로 숫자 0 으로 나누는 것은 불가능하다.
VS 에서 0으로 나누려고 시도하니 "예외가 처리되지 않음" 표시가 떴다.
System.DivideByZeroException: 'Attempted to divide by zero.'
System.DivideByZeroException: 'Attempted to divide by zero.'
문구에 대해서 구글링해보니
DivideByZeroException 클래스는
정수나 Decimal 값을 0으로 나누려 할 때 throw 되는 예외입니다.
정수 또는 Decimal 숫자를 0으로 나누려고 하면 예외가 DivideByZeroException 발생합니다.
부동 소수점 값을 0으로 나누면 예외가 발생하지 않습니다.
[참고사이트] microsoft 공식문서
float 와 double 을 0 으로 나눠보니
예외를 throw 하지 않고 Infinity 라는 결과물을 보여주었다.
오호 ..
그럼 decimal 과 float, double 의 차이는 무엇인가 부터 시작해서
궁금증의 연속이 시작되었고
더 어려워진 느낌이지만
일단 확실히 기억해야 할 것 :
VS C# 에서 정수나 Decimal 값을 0으로 나누려 할 때 예외가 throw 된다 !
이번 주차부터 C# 콘솔창과는 작별인사 ~!
unity 로 작업 시작한다 !!