<Main.Cpp>
#include <iostream>
#include "Calculator.h"
using namespace std;
void main()
{
cout << "My Calculations" << endl;
float input1, input2;
while (true)
{
cout << "input the first value (0 to exit): ";
cin >> input1;
if (input1 == 0)
//사용자가 0을 입력하면 종료
{
break;
}
cout << "input the second value (0 to exit): ";
cin >> input2;
if (input2 == 0)
//사용자가 0을 입력하면 종료
{
break;
}
int a = input1;
int b = input2;
if (a == input1 && b == input2)
{
int result = Add(a, b);
cout << "integer addition: " << a << " + " << b << " = "
<< result
<< std::endl;
}
else
{
float result = Add(input1, input2);
cout << "float addition: "
<< input1 << " + " << input2 << " = "
<< result
<< std::endl;
}
}
std::cout << "Finished!";
}
<Calculator.h>
#pragma once
int Add(int a, int b);
float Add(float a, float b);
<Calculator.Cpp>
#include "Calculator.h"
int Add(int a, int b)
{
return a + b;
}
float Add(float a, float b)
{
return a + b;
}
<컴파일해보기>

1. 입력 및 종료 로직 (While Loop)
float input1, input2;
while (true)
{
// ... 입력 받기 ...
if (input1 == 0) break;
// ... 두 번째 입력 ...
if (input2 == 0) break;
- float 사용: 사용자가 3.14 같은 실수를 입력할 수도 있으므로, 처음부터 범용성이 넓은 float 타입으로 입력을 받습니다.
- break 조건: 사용자가 0 을 입력하면 while(true) 무한 루프를 탈출하여 프로그램이 종료되도록 설계했습니다.
2. 정수 vs 실수 판별 (형 변환 활용)
int a = intput1;
int b = intput2;
if (a == input1 && b == input2)
{
// 정수 계산 실행
}
else
{
// 실수 계산 실행
}
- 암시적 형 변환(casting): float 값을 int 변수에 담으로 소수점 아래 자리가 버려집니다.
(예: 3.14 -> 3
- 비교 연산: 만약 input1 이 원래 3.0 이었다면 a도 3이 되어 a == input1 은 참이 됩니다. 반면 3.14 였다면 3 == 3.14 는 거짓이 됩니다.
- 이를 통해 입력된 값이 "소수점이 없는 깔끔한 정수" 인지 "소수점이 포함된 실수" 인지 구분하여 출력 메세지를 다르게 보여줍니다.
'코딩' 카테고리의 다른 글
| 챕터 1-8 : 자료형(Data Type) (0) | 2026.02.24 |
|---|---|
| 챕터 1-7 : 리터럴 (0) | 2026.02.24 |
| 챕터 1-6 : 서식지정자 (0) | 2026.02.23 |
| 챕터 1-5 : main() 함수와 printf() 함수 (0) | 2026.02.23 |
| 챕터 1-4 : 프로젝트와 소스코드 생성 (0) | 2026.02.23 |