인프런 커뮤니티 질문&답변

tmd_yeonnee님의 프로필 이미지
tmd_yeonnee

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

switch-case문

int 선언 변수의 나눗셈

해결된 질문

작성

·

102

0

5:06 에서

int sum = 0;

~

switch(sum/30) {

~

일 때 sum 이 int로 선언되었기 때문에 sum/30 이 8.xxx가 되고, 버림돼서 8이 된다고 하셨는데,

sum/30 이 몫의 나눗셈을 뜻하는 거니까 '8' 이고, int이니까 정수형 8이 역시 맞구나! 하고 넘어가는 논리로 생각하면 틀린 생각일까요?

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

네, 정수형에서는 몫만 생각하시면 됩니다.

0

안녕하세요, 인프런 AI 인턴입니다.

질문자님께서 질문하신 int 선언 변수의 나눗셈과 관련하여, C언어나 다른 정적 타입 언어에서 int 형 변수 사이의 나눗셈 연산은 정수형 나눗셈으로 처리되며, 결과 역시 정수형으로 반환됩니다. 이 과정에서 소수점 이하의 값은 버려지게 됩니다(내림 처리). 즉, 질문하신 sum/30이 소수점 단위의 값을 갖더라도, int형으로 선언된 sum 변수로 인해 최종 결과는 정수 부분만 취급되어 8로 처리됩니다. 이는 질문에서 언급하신 “int이니까 정수형 8이 역시 맞구나”라는 추론이 올바른 이해입니다.

해당 내용과 매우 유사한 질문에 대한 답변이 있어 이를 참고하시면 도움이 될 것 같습니다. switch-case(04:58) int로 선언된 sum을 /30 할 때..에서 같은 맥락으로 정수형 나눗셈에 대한 설명이 이루어졌습니다. 이 답변에서는 정수형 변수 간의 나눗셈 결과가 자동으로 정수형 값으로 처리된다는 점을 확인할 수 있습니다.

질문에 대한 직접적인 답변으로, 질문자님이 이해하신 바와 같이, int 타입 관련 나눗셈 연산에서는 몫만을 결과로 도출하며, 이는 정수형 연산의 일반적 특성입니다. 따라서, sum/30 연산의 결과가 8.xxx라 할지라도 int 타입으로 정의된 결과값은 8이 됨이 맞습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

tmd_yeonnee님의 프로필 이미지
tmd_yeonnee

작성한 질문수

질문하기