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

tjekqls7님의 프로필 이미지
tjekqls7

작성한 질문수

홍정모의 따라하며 배우는 C언어

7.8 단어 세기 예제

7.8 단어 세기 예제

작성

·

137

1

교수님께서 작성하신 단어 세기 예제를 보면 while문 안의 if문들이 다 if(expression) 형태인데, 왜 else if는 사용하지 않으신 건가요??

전에 강의에서 if (income <= base1) else if (income <= base2) 이면 else if의 정확한 범위는 base1 < income <= base2 가 된다고 하셨는데 그런 특징과 관련된 건가요?

만약 그런거라면 아래와 같이 코드를 작성해도 될까요? 두 가지 경우 모두 봐주세요..

    while ((ch = getchar()) != STOP)
    {
        if (!isspace(ch))
        {
            character++;

            if (!word_flag)
            {
                word++;
                word_flag = true;
            }

            if (!line_flag)
            {
                line++;
                line_flag = true;
            }
        }
        else
            word_flag = false;
        
        if (ch == '\n')
            line_flag = false;
   }
    while ((ch = getchar()) != STOP)
    {
        if (!isspace(ch))
            character++;
        
        if (!isspace(ch) && !line_flag)
        {
            line++;
            line_flag = true;
        }
        else if (ch == '\n')
            line_flag = false;

        if (!isspace(ch) && !word_flag)
        {
            word++;
            word_flag = true;
        }
        else if (isspace(ch))
            word_flag = false;
   }

답변 1

1

안녕하세요?
else if는 의미가 if 가 '아니라면' 다음 조건을 검사합니다.
if에서 true가 받아지면 다음 else if 문들은 무시합니다.
이 부분은 코드를 보니 어느정도 이해를 하신 것 같네요. 가능합니다.
그런데 사람마다 스타일이 있기 때문에 어떤 정답이 있다. 라고 못박아두시는 것은 좋지 않다고 생각합니다.

tjekqls7님의 프로필 이미지
tjekqls7

작성한 질문수

질문하기