• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

18분9초에 함수만드신거 질문드립니다

21.08.11 15:03 작성 조회수 107

0

교수님 안녕하세요

18분 9초 쯤에

int getPrice(bool onSale)

{

if (onSale) return 10;

else return 100;

}

라고 함수를 하나 만드셨는데

int main()

{

bool onSale = false;

이것처럼 bool onSale을 true가 아닌 false로 놓으면 왜 100이 나오는지 여쭤봅니다.

혹시

if (onSale) return 10;

이라는 뜻은 onSale이 참일때 10을 return하라는 뜻이어서 false로 놓으면 100이 나오는것인가요?

 그러면 bool 타입 인풋일때는 if (onSale == true)라고 명시를 안해도 if(onSale)만으로도 onSale==true라는 뜻이라서 그런것인가요?

함수의 input type이 정수인것들만 보다가 여기선 bool 타입이다보니 헷갈리는것 같습니다

감사합니다

const int price = getPrice(onSale);

답변 1

답변을 작성해보세요.

0

안소님의 프로필

안소

2021.08.11

안녕하세요 :)

if (onSale == true) 라고 해줄 수도 있지만

이 onSale 자체의 값이 true 아니면 false 이잖아요?

그러니 if (onSale) 이라고도 할 수 있는 것입니다. onSale 이 자체가 조건식이 될 수 있는 것입니다. onSale 의 값으로 판별하면 되니까요!

조건식을 판별할 때 0 이 아닌 모든 것은 참, 오로지 0 만 거짓이라는 것을 배우셨을 겁니다.

onSale 값 자체가 무엇인지에 따라 충분히 참, 거짓을 가려낼 수 있으니 if (onSale) 이라고도 쓸 수 있는 것입니다.ㅣ

onSale 값이 true 면 10을 리턴하겠고, false 면 100을 리턴하겠습니다.