📌 enum 클래스
enumerations
( = 구체적으로 나열)
상수를 ,
로 모아놓은 열거형 클래스
✔ 특징
속성
메서드
생성자
보유 가능
public
static
const
성격 띔
- 즉, 변경 불가 (재정의 불가)
- 객체 생성 불가
💬 예시 코드
enum Operators
{
None,
Add,
Subtract,
Multiply,
Divide,
Result
}
Operators currentOperator = Operators.None;
Boolean operatorChangeFlag = false;
int firstOperand = 0;
int secondOperand = 0;
firstOperand
: 첫번째 피연산자
secondOperand
: 두번째 피연산자
currentOperator
: 현재 연산자
프론트
TableLayoutPanel
: 테이블 모양 만들기
display(Label)
-> TextAlign
: TopRight / Dock
: Top / AutoSize
: False
📌 숫자 버튼을 눌렀을 경우
💬 코드
operatorChangeFlag
private void ButtonOne_Click(object sender, EventArgs e)
{
if (operatorChangeFlag == true)
{
display.Text = "";
operatorChangeFlag = false;
}
string strNumber= display.Text += "1";
int intNumber = Int32.Parse(strNumber);
display.Text = intNumber.ToString();
}
📌 연산 버튼을 눌렀을 경우
💬 코드
private void ButtonAdd_Click(object sender, EventArgs e)
{
firstOperand = Int32.Parse(display.Text);
currentOperator = Operators.Add;
operatorChangeFlag = true;
}
private void ButtonResult_Click(object sender, EventArgs e)
{
secondOperand = Int32.Parse(display.Text);
if (currentOperator == Operators.Add)
{
firstOperand += secondOperand;
display.Text = firstOperand.ToString();
}
else if (currentOperator == Operators.Subtract)
{
firstOperand -= secondOperand;
display.Text = firstOperand.ToString();
}
else if (currentOperator == Operators.Multiply)
{
firstOperand *= secondOperand;
display.Text = firstOperand.ToString();
}
else if (currentOperator == Operators.Divide)
{
if (secondOperand == 0)
{
display.Text = "0으로 나눌 수 없습니다.";
}
else
{
firstOperand /= secondOperand;
display.Text = firstOperand.ToString();
}
}
}
private void ButtonAllClear_Click(object sender, EventArgs e)
{
firstOperand = 0;
secondOperand = 0;
currentOperator = Operators.None;
display.Text = "0";
}
📌 전체 코드
public partial class Form1 : Form
{
enum Operators
{
None,
Add,
Subtract,
Multiply,
Divide,
Result
}
Operators currentOperator=Operators.None;
Boolean operatorChangeFlag = false;
int firstOperand = 0;
int secondOperand = 0;
public Form1()
{
InitializeComponent();
}
private void ButtonOne_Click(object sender, EventArgs e)
{
if (operatorChangeFlag == true)
{
display.Text = "";
operatorChangeFlag = false;
}
string strNumber= display.Text += "1";
int intNumber = Int32.Parse(strNumber);
display.Text = intNumber.ToString();
}
private void ButtonTwo_Click(object sender, EventArgs e)
{
if (operatorChangeFlag == true)
{
display.Text = "";
operatorChangeFlag = false;
}
string strNumber= display.Text += "2";
int intNumber = Int32.Parse(strNumber);
display.Text = intNumber.ToString();
}
private void ButtonThree_Click(object sender, EventArgs e)
{
if (operatorChangeFlag == true)
{
display.Text = "";
operatorChangeFlag = false;
}
string strNumber= display.Text += "1";
int intNumber = Int32.Parse(strNumber);
display.Text = intNumber.ToString();
}
private void ButtonFour_Click(object sender, EventArgs e)
{
if (operatorChangeFlag == true)
{
display.Text = "";
operatorChangeFlag = false;
}
string strNumber= display.Text += "4";
int intNumber = Int32.Parse(strNumber);
display.Text = intNumber.ToString();
}
private void ButtonFive_Click(object sender, EventArgs e)
{
if (operatorChangeFlag == true)
{
display.Text = "";
operatorChangeFlag = false;
}
string strNumber= display.Text += "5";
int intNumber = Int32.Parse(strNumber);
display.Text = intNumber.ToString();
}
private void ButtonSix_Click(object sender, EventArgs e)
{
if (operatorChangeFlag == true)
{
display.Text = "";
operatorChangeFlag = false;
}
string strNumber= display.Text += "6";
int intNumber = Int32.Parse(strNumber);
display.Text = intNumber.ToString();
}
private void ButtonSeven_Click(object sender, EventArgs e)
{
if (operatorChangeFlag == true)
{
display.Text = "";
operatorChangeFlag = false;
}
string strNumber= display.Text += "7";
int intNumber = Int32.Parse(strNumber);
display.Text = intNumber.ToString();
}
private void ButtonEight_Click(object sender, EventArgs e)
{
if (operatorChangeFlag == true)
{
display.Text = "";
operatorChangeFlag = false;
}
string strNumber= display.Text += "8";
int intNumber = Int32.Parse(strNumber);
display.Text = intNumber.ToString();
}
private void ButtonNine_Click(object sender, EventArgs e)
{
if (operatorChangeFlag == true)
{
display.Text = "";
operatorChangeFlag = false;
}
string strNumber= display.Text += "9";
int intNumber = Int32.Parse(strNumber);
display.Text = intNumber.ToString();
}
private void ButtonZero_Click(object sender, EventArgs e)
{
if (operatorChangeFlag == true)
{
display.Text = "";
operatorChangeFlag = false;
}
string strNumber= display.Text += "0";
int intNumber = Int32.Parse(strNumber);
display.Text = intNumber.ToString();
}
private void ButtonAdd_Click(object sender, EventArgs e)
{
firstOperand = Int32.Parse(display.Text);
currentOperator = Operators.Add;
operatorChangeFlag = true;
}
private void ButtonResult_Click(object sender, EventArgs e)
{
secondOperand = Int32.Parse(display.Text);
if (currentOperator == Operators.Add)
{
firstOperand += secondOperand;
display.Text = firstOperand.ToString();
}
else if (currentOperator == Operators.Subtract)
{
firstOperand -= secondOperand;
display.Text = firstOperand.ToString();
}
else if (currentOperator == Operators.Multiply)
{
firstOperand *= secondOperand;
display.Text = firstOperand.ToString();
}
else if (currentOperator == Operators.Divide)
{
if (secondOperand == 0)
{
display.Text = "0으로 나눌 수 없습니다.";
}
else
{
firstOperand /= secondOperand;
display.Text = firstOperand.ToString();
}
}
}
private void ButtonAllClear_Click(object sender, EventArgs e)
{
firstOperand = 0;
secondOperand = 0;
currentOperator = Operators.None;
display.Text = "0";
}
private void ButtonSubtract_Click(object sender, EventArgs e)
{
firstOperand = Int32.Parse(display.Text);
currentOperator = Operators.Subtract;
operatorChangeFlag = true;
}
private void ButtonMultiply_Click(object sender, EventArgs e)
{
firstOperand = Int32.Parse(display.Text);
currentOperator = Operators.Multiply;
operatorChangeFlag = true;
}
private void ButtonDivide_Click(object sender, EventArgs e)
{
firstOperand = Int32.Parse(display.Text);
currentOperator = Operators.Divide;
operatorChangeFlag = true;
}
}