C++

[강의] 8월 19일 수업정리

k-codestudy 2024. 8. 19. 21:17

오늘의 수업은 간단한 코딩으로 시작했다

 

[ 국어, 영어, 수학, 단 점수는 int형, 총점과 평균을 출력해라, 평균은 소수점이 나오게 출력한다.]

#include <iostream>

int main() {

    int nKorean{};
    int nEnglish{};
    int nMathmatics{};

    int nTotal{};
    float fAverage{};

    nKorean = 99;
    nEnglish = 88;
    nMathmatics = 93;

    nTotal = nKorean + nEnglish + nMathmatics;

    fAverage = (float)nTotal / 3.0f;

    std::cout << "총점 : " << nTotal << std::endl;
    std::cout << "평균 : " << fAverage << std::endl;
}

설명

  • nKorean, nEnglish, nMathmatics는 정수형 변수로 각 과목의 점수를 저장한다
  • nTotal은 총점을 계산하기 위해 세 과목의 점수를 더한 값이다
  • fAverage는 총점을 과목 수로 나누어 평균을 계산하는데, 평균을 실수형으로 출력하기 위해 nTotal을 float형으로 캐스팅하고 나눗셈 연산을 수행한다

하지만 평균을 계산하는 부분을 봐보자

 fAverage = (float)nTotal / 3.0f;

이 부분이다. 과연 3.0f라 하는 게 명시적으로 맞을까? 

과목이 2, 3, 4 이런 식으로 정수형식이지 3.2, 4.3 이런식으로 소수로 나오지는 않는다 그렇기에 다른 방법으로 쓰는 게 좀 더 올바르다라고 이야기해 주셨다.

그럼 어떤 식으로 작성을 해야 할까?

  fAverage = (float)nTotal / (float)3;

이런 식으로 둘 다 float로 캐스팅을 하여 변환하는 방식이 있고

...
int nSubtitle{}:

...

fAverage = (float)nTotal / (float)nSubtitle;

과목수라는 변수를 설정하고 float로 캐스팅하면 좀 더 명시적인 코딩이라고 할 수 있을 것이다.

 

- 코드 분석

코드 분석을 할 때 2가지만 보면 된다. 

1. 똑같은 모양이 반복

2. 코드가 산의 모양을 이루고 있다 (즉, {} 안에 {}를 계속 사용함)

이런 식으로 코드를 짜게 되면 현재 내가 코드를 잘못 짜고 있다는 것이다라고 생각하면 좋다고 한다. 

그렇기에 코드를 짤 때 주의하면서 짜도록 하자.

 

- if문의 동작 원리

 

if문은 조건문을 평가하여, 조건이 참(true) 일 경우에만 특정 코드를 실행합니다. 조건문은 일반적으로 비교 연산자(예: >, <, ==,!= 등)를 사용하여 두 값을 비교하고, 이 비교의 결과를 기반으로 조건을 평가한다.

#include <iostream>

int main() {
	
	int nData{};

	nData = 100;
	
	if (nData > 3)
		std::cout << "참";
}

위 코드에서 nData가 100이므로, nData > 3 조건은 참입니다. 따라서 "참"이 출력.

if문에서의 조건 평가

  • if문 안에는 조건이 들어갑니다. 이 조건이 참(true)인지 거짓(false)인지 평가하여 해당 블록의 코드 실행 여부를 결정한다.
  • 조건문이 true가 되면, if문 안의 코드가 실행.
  • 조건문이 false가 되면, if문 안의 코드는 실행되지 않는다.
  • if 안에 값이 들어가는 거지 조건문이 들어가는 것이 아니다.

조건문의 평가

  • 0: C++에서 if문에 들어가는 조건이 0인 경우는 거짓(false)으로 평가됩니다.
  • 0이 아닌 값: 0이 아닌 정수값(양수, 음수 포함)은 참(true)으로 평가됩니다.

예시

int x{};

x = 10;

if (x) {
    std::cout << "x는 0이 아닙니다."; // x는 0이 아니므로 참이 되어 이 문장이 출력됩니다.
}
  • 이 경우 x가 0이 아닌 값이므로, 조건이 참으로 평가됩니다.

결론

  • if문은 조건이 참일 때 실행됩니다.
  • if문에 전달된 조건이 0이면 거짓으로 평가되며, 0이 아닌 값은 참으로 평가됩니다.
  • if문과 안에 값에서 일어나는 과정은 다른 과정이다.

참고

  • if문 안에 넣는 값이 참인지 거짓인지 평가된 후, 그 결과에 따라 코드를 실행하는 구조이다
  • 숫자 자체에 의미를 부여하기보다, 해당 숫자가 참인지 거짓인지를 평가하는 것이 중요합니다.

단축키

  • Shift + Del / Ctrl + X: 선택한 라인 삭제
  • Ctrl + D: 선택한 라인 복사
  • Ctrl + Shift + F: 전체 문서에서 텍스트 변경 (주의: 불필요한 변경을 방지하기 위해 주의 깊게 사용)

'C++' 카테고리의 다른 글

[강의] 8월 21일 수업정리  (0) 2024.08.21
[강의] 8월 20일 수업정리  (0) 2024.08.20
[강의] 8월 16일 수업정리  (0) 2024.08.16
[강의] 8월 14일 수업정리  (0) 2024.08.14
[강의] 8월 13일 수업정리  (0) 2024.08.13