01. 목표 

더보기

01.1

이번에서는 산술연산 기능을 구현합니다.

 

01.2

이전 포스트에서 작업했던 Calculator 예제를 이어갑니다.

이전 포스트 작업물이 없다면, Calculator 예제를 다운받고 확인합니다.

 

5.3.1 Calculator 준비 예제.zip
0.23MB

 

 

더보기

02.1 사칙연산(+, -, *, /) 식별을 위한 enum 자료형 만들기

 

public enum SelectedOperator
{
Addition,
Subtraction,
Multipliction,
Division
}

 

 

02.2 사칙연산(+, -, *, /) 로직 만들기

public class SimpleMath
{
public static double Add(double n1, double n2) { return n1 + n2; }
public static double Subtraction(double n1, double n2) { return n1 - n2; }
public static double Multiply(double n1, double n2) { return n1 * n2; }
public static double Divide(double n1, double n2) { return n1 / n2; }
}

 

 

02.3 피연산자 값과, 사칙연산(+, -, *, /) 데이터 저장시키기

 

// 사칙 연산 버튼 누르기 전에 입력된 숫자를 lastNumber에 저장한다.
double lastNumber, result;
// 어떤 사칙 연산 버튼이 눌러졌는지 저장한다.
private SelectedOperator selectedOperator;
private void OperationButton_Click(object sender, RoutedEventArgs e)
{
// 사칙연산 버튼을 누르면, 이전에 입력된 숫자는 lastNumber 변수에 저장되고
if (double.TryParse(resultLabel.Content.ToString(), out lastNumber))
{
// 레이블엔 0을 출력한다.
resultLabel.Content = "0";
}
// 그리고 selectedOperator 변수에, 어떤 사칙연산 버튼이 입력되었는지 저장한다.
if (sender == plusButton)
selectedOperator = SelectedOperator.Addition;
if (sender == minusButton)
selectedOperator = SelectedOperator.Subtraction;
if (sender == multiplicationButton)
selectedOperator = SelectedOperator.Multipliction;
if (sender == devideButton)
selectedOperator = SelectedOperator.Division;
}

 

  

 

02.4 계산 결과 로직 구현

private void EqualButton_Click(object sender, RoutedEventArgs e)
{
// 마지막 피연산자(입력 숫자)를 newNumber 변수에 저장하고
if (double.TryParse(resultLabel.Content.ToString(), out double newNumber))
{
// 이전에 입력받은 연산자를 식별하여,
switch (selectedOperator)
{
// 해당 연산자 사칙연산 로직이 실행되도록 분기한다.
case SelectedOperator.Addition:
result = SimpleMath.Add(lastNumber, newNumber);
break;
case SelectedOperator.Subtraction:
result = SimpleMath.Subtraction(lastNumber, newNumber);
break;
case SelectedOperator.Multipliction:
result = SimpleMath.Multiply(lastNumber, newNumber);
break;
case SelectedOperator.Division:
result = SimpleMath.Divide(lastNumber, newNumber);
break;
}
}
resultLabel.Content = result.ToString();
}

 

3. 실행 결과 확인