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

콩림님의 프로필 이미지
콩림

작성한 질문수

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

7.8 단어 세기 예제

bool 타입과 관련하여 질문이 있습니다

작성

·

173

0

교수님! 강의를 보다가 이해되지 않은 부분이 있어 질문드립니다.

위에서 bool타입으로 bool word_flag =false; 이렇게 선언을 하고 if문 안에 조건식에 !word_flag 라고 했는데 이미 위에서 word_flag는 false라고 선언을 해줬으면 !word_flag는 flase가 아닌 true가 아닌가요? 디버거를 해봤는데도 교수님 말씀처럼  !word_flag가 flase라고 해서 질문드렸습니다.!

답변 2

2

안녕하세요?

word_flag가 false 였으니 !을 붙이면 !word_flag 는 true가 맞습니다.

여기서는 flag라는 개념을 이해하셔야 하는데요.

1. 처음에는 첫 라인이니까 라인수를 하나 증가시키고 줄바꿈 기호('\n')가 나타날 때까지 라인수를 세지않기위해 line_flag를 true로 바꿔줘요.

2.  줄바꿈 문자가 들어오면(if(ch == '\n') 새로운 줄이 시작될꺼니까 false로 다시 바꿔놓는 겁니다.

교수님께서 설명해주신대로 flag의 개념을 이해해야하는데요. 줄바꿈 문자('\n')가 들어오기 전까지 line수를 세지 않기 위해서 억제를 하는 스위치를 켜둔다는 느낌이라고 설명하면 좋을까요?

현재 배우고 있는 강의 제목과 [7.7 논리 연산자 Logical operators]과 설명해주시는 내용을 연결시켜서 이해하려고 하면 더 도움이 됩니다.

감사합니다.

1

if문 안에서는 true, false조건을 비교중이라 !가 붙어도 값이 바뀌는게 아니라 !가 붙어서 false가 나오는게 진짜(true)인지 확인하는거 같은데요

콩림님의 프로필 이미지
콩림

작성한 질문수

질문하기