작성
·
266
답변 4
2
네 맞습니다. 답글 주신 것과 원래 질문 주신 것을 종합해보니 질문자님께서 !line_flag 로 인하여 line_flag 값이 true가 된다고 이해하고 계신 것 같다고 파악했는데 맞을까요?
그냥 A + 3; 하면 A 변수에 들은 값은 변하지 않습니다. 그냥 A값을 빌려와 이에 3을 더하는 행위를 하는 것뿐이죠. 기존 A의 값엔 변동이 없습니다.
반면에 A=A+3 은 실제로 A값을 기존값에 3 더한 값으로 수정하는 식입니다.
마찬가지로 !line_flag 는 이 조건식 자체가 true가 되는거지 line_flag 값은 계속 그대로 false입니다. line_flag 값을 true로 바꿔준게 아닙니다. line_flag = !line_flag 이렇게 해야 line_flag가 true가 됩니다.
1
안녕하세요.
라인 플래그가 true일때 실행되는 것이 아니라 false일 때 실행됩니다. line_flag 앞에 붙은 느낌표에 주목해주세요! if(!조건식) 라고 가정해보면 조건식 결과가 false면 if문이 실행되겠죠? 즉 !line_flag 조건식이 true 라는 것은 line_flag 가 false라는 것입니다. false 에 not (!)을 취하면 true가 되죠.
0
7.8 단어 세기 예제 강의를 보시면
교수님께서 bool line_flag = false;로 초기화를 하시거든요.
초기화가 됐기때문에 if(!isspace(c) && !line_flag) if문 조건식에서 다시 부정을하면 !false라서 true가 아닌가요??ㅠ