상세 컨텐츠

본문 제목

[0819] C언어 코딩도장 8일차

C/C언어 코딩도장

by 정저엉지 2020. 8. 20. 01:11

본문

오늘 일이 있어서 나갔다 왔는데 (마스크 계속 착용함) 너~~~~~~~~~~~~무 피곤하다. 특히 눈이 너무 피로해서 잘 안 떠지지만 양심상 공부를 조금이라도 해야 할 것 같아서 노트북을 켜긴 했다. 하나라도 끝내면 다행인 상태이다. 운동을 해도 이 놈의 몸은 튼튼해질 기미가 안 보이네... 내 상태를 보아하니 오늘도 굉장히 공부 일지가 짧고 얇을 것 같다. 지금 졸려서 문장에 점점 흐름과 맥락이 사라지는 것 같은데, 혹시 누군가가 읽는다면, 근데 불편하다면 양해 부탁드립니다...

 

⁎ C언어 코딩도장 책에 있는 내용+동영상 강의+각종 실습 문제는 아래 링크에 들어가면 더 자세하게 볼 수 있습니다!

https://dojang.io/

 

코딩 도장

 

dojang.io

 

<UNIT 18> else를 사용하여 두 방향으로 분기하기

 - 18.1 else 사용하기

 - 18.2 else와 세미콜론

 - 18.3 else에서 중괄호 생략하기

 - 18.4 if 조건문의 동작 방식 알아보기

 - 18.5 조건식을 여러 개 지정하기

 - 18.6 퀴즈

 - 18.7 연습문제: else 사용하기

 - 18.8 연습문제: 합격 여부 판단하기

 - 18.9 심사문제: else 사용하기

 - 18.10 심사문제: 합격 여부 판단하기

 

 

하필 오늘같은 날에 소단원이 10개......?

 

'분기'의 뜻이 몰라서 공부를 시작하기 전에 네이버에 찾아본 결과 '나뉘어서 갈라짐, 또는 그런 갈래'라고 한다. 'else를 사용하여 두 방향으로 나누기' 이런 느낌이려나... 예측해보자면 else는 if문을 사용한 후에 사용할 수 있기 때문에 if와 else에 적힌 조건을 기준으로 실행하는 코드문이 나뉜다~ 그런 뜻이지 않을까. 

 

혼자 이런 생각을 하면서 오늘 공부할 페이지를 폈는데 아주 친절하게 첫 줄부터 그림과 함께 '분기'에 대한 설명이 있죠? 역시 단계별로 잘 나뉘어져 있다는 후기에 걸맞게 차근차근 알려주는 친절한 코딩도장...~^^

if에 더해 else를 사용하면 if 조건을 만족하지 않는 다른 경우에 대한 코드도 적용할 수 있다는 장점이 있다. 형태는 다음과 같다.

위에서 볼 수 있듯이 else 뒤에는 조건식이 붙지 않는다. 이는 else문이 if의 조건이 충족되지 않을 때 실행되기 때문이다.

그러므로 else는 무조건 if를 사용한 후에야 쓸 수 있다. 말을 할 때도 '만약에~'라는 말을 하지 않고 앞뒤 맥락 없이 갑자기 '그렇지 않으면~' 하면 누구나 당황하듯이 코딩에서도 if를 먼저 써야 else 사용이 가능하다.

그리고 if와 마찬가지로 else 뒤에도 세미콜론(;)을 붙이면 안 된다!!!!! 세미콜론을 붙이면 if 때와 마찬가지로 조건과 상관없이 코드가 실행된다. 실행 코드가 한 줄이라면 중괄호를 생략해도 상관없다. 즉, 조건식이 없다는 것만 빼면 if와 else를 사용하는 방식에는 차이가 없다. 

 

if 조건문의 동작 방식 알아보기 예제

이 예제를 보면 '엥 뜬금없이 왜 조건식에 숫자 2가 달랑 들어 있으며, 저게 왜 참이야'라고 생각할 수 있다. 본인도 프로그래밍 언어를 처음 배울 때 딱 저랬다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 하지만 이거는 무슨 내용인지 한 번만 배우면 까먹진 않을 것이다. 

시스템은 0을 거짓, 0 이외의 모든 숫자를 참이라고 판단한다. 그래서 조건식에 2 = 참 (True)이므로 조건식이 충족된다는 뜻으로 받아들인다. if 조건문에 2가 아닌 0을 넣으면 위 코드는 '거짓'을 출력한다. 

 

저번 공부 일지였나... 에서 언급했던 내가 많이 했던 실수 중 하나인 '=와 == 헷갈리기'가 위의 예제에 속한다. 원래대로라면 조건식에 (num1 == 10)이라고 적어야 하지만, 위처럼 (num1 = 10)이라고 적으면 이는 'num1이 10과 같다.'가 아니라 'num1에 10이라는 값을 할당했다. num1의 값은 참(0이 아닌 값)인가 거짓(0)인가?'라는 의미로 if문이 받아들인다. 물론 이런 의미로 코드를 작성할 때도 있겠지만, '할당'보다는 '값 비교' 때 if문을 사용하는 경우가 많으므로 항상 조심해야 한다. 참고로, num1에 추가로 값을 할당하지 않고 num1의 참/거짓 여부를 판단하고 싶다면 if (num1)과 같이 쓰면 된다. 

조건문에서 '할당' 이 발생했을 때 기본적으로 Visual Studio는 오류/경고를 내지 않지만 만약의 실수를 대비해 경고를 띄우고 싶으면 속성에서 경고 수준을 올리면 된다(기본값은 수준 3). 나는 나를 믿는 마음으로 (사실 약간 귀찮아서) 그냥 내버려둘까... 하다가 지금은 아직 초보니까 기술의 힘에 조금 의지하기로 했다! (설정 변경했다는 뜻)

이런 오류를 내지 않기 위해 일부러 변수와 값의 자리를 바꿔 if (10 == num1) / (10 = num1)처럼 쓰는 경우가 있다. 이는 할당할 때 변수와 값의 자리가 위와 같이 바뀌게 되면 오류가 나는 점을 이용하는 꿀팁이다! 역시 사람의 지혜

 

조건식을 하나가 아니라 여러 개 지정하려면 논리 연산자(and, or)를 쓰면 된다. 이는 나중에 더 자세히 다룬다니까 넘어가도록 하겠다! 이때 논리 연산자를 쓰는 방법 외에도 if문을 여러 번 쓸 수 있는데 if 문 다음에 또 if문을 연달아 쓰면 된다. 이때 조건식이 2번 적용됐는지는 들여 쓰기 여부를 통해 확인할 수 있다. (들여 쓰기가 됐다 = 위 문장이 포함된다... 라는 뜻인데 저는 제 말이 이해되는데 다른 분들은 어떨지 모르겠ㄴㅔ요...)

 

18.6 퀴즈 결과

얼마 전에 알게 된 사실인데(라고 해봤자 약 5일 전) C언어 코딩도장 사이트 메인에 있는 이

학습 진척도가 (연두색 = 완료, 파란색 = 미완료) 퀴즈, 심사 문제에서 만점을 못 받으면 무조건 미완료 상태로 떠있다. 이런 거 무조건 꽉 채워야 하는 사람이라 지금까지 1~2문제 틀려서 미완료 상태로 남은 모든 퀴즈를 다 다시 풀었다...^^ 그 이후로는 두 눈 똑바로 뜨고 국어 지문 읽는 심정으로 한 글자 한 글자 천천히 읽는다. 절대 재시험보지 않으리라

 

연습문제도 다 맞았다. 오늘 연습문제st를 난 굉장히 좋아한다. 생각해보니 졸업 전에 토익 시험 봐야 하는데... 솔직히 토익 응시료가 싼 편이 아니다 보니 한 번에 (겁나) 잘 봐서 졸업 전까지 더 이상의 토익 응시료를 쓰지 않고 학교에서 장학금도 받고 싶은데 재미가 없다. 문법/단어 포함 LC, RC보다 회화를 좋아하는 사람이라 토익 공부가 너무 슬프다... ㅋㅋㅋㅋㅋㅋㅋㅋ (역시나 기초 뛰어넘고 응용 공부하길 원하는 사람)

 

18.9 심사문제 결과

희희(喜)

 

18.10 심사문제 결과 1차

아니 왜 틀렸는데. VIsual Studio에서 실행해보고 간 건데 왜 틀렸냐고

18.10 심사문제 결과 2차

아니 뭔데

자존심 상해서 해설 안 보려다가 도저히 모르겠어서 봐야겠다. 어디가 잘못된 거죠?

 

18.10 심사문제 결과 마지막...3차...^^

아...! ㅎㅎ 생각을 길게 안 하면 문제가 되는 이유.jpg 각 과목 입력값의 범위가 중요하다고 했는ㄷㅔ 평균 범위만 정해놓고 난리났다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

와 우선 18단원이 끝났고 하나 남았는데 이건 소단원 5개밖에 없기도 하고 if else에 아주 작게 추가되는 거라 솔직히 오래 걸리진 않을 것 같은데 지금 무지막지하게 피곤하다. 지금 내가 무슨 정신으로 타자를 치고 있는지 아무도 모를 것 같다. 자정으로부터 정확히 50분이 지난 시간인데 이렇게 고민할 시간에 다음 장을 폈다면 거의 끝났을 것 같다. 그래서 물 한 잔 마시고 다시 시작하려고 한다. 칼을 뽑았으면 무라도 썰어야지🧅(얘는 무가 아닌데요)

 

 

<UNIT 19> else if를 사용하여 여러 방향으로 분기하기

 - 19.1 else if 사용하기

 - 19.2 if, else if, else를 모두 사용하기

 - 19.3 퀴즈

 - 19.4 연습문제: if, else if, else를 모두 사용하기

 - 19.5 심사문제: 교통카드 시스템 만들기

 

 

else if는 else의 경우에 (if 조건문이 거짓일 때) 조건문을 추가하고 싶은 경우에 쓸 수 있다. 즉 형태는 다음과 같다.

else는 조건식을 안 쓴다면 else if는 조건식을 써야 한다. 

if, else if, else를 한 번에 쓰는 방법은 다음과 같다.

if -> else if -> else 순으로 쓰면 된다. 순서는 꼭 지켜야 한다.

 

오 이제 퀴즈랑 연습문제, 심사문제만 남았는데 쿨링 팬을 안 켰더니 (잠깐 하다가 관두고 자러 갈 줄 알았다) 노트북 키패드 부분이 터지려고 한다! 빨리 끝낼 거니까 좀만 버텨....

 

19.3 퀴즈 결과

 

누구보다 빠르게 연습문제 풀고

 

19.5 심사문제 결과

^________^

 

 

오늘의 느낀 점

 

요즘 생각보다 할 일을 착실하게 잘 해내고 있어서 내 자신이 너무 자랑스럽고 당황스럽고 낯설다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 예전 하루 일과 달성률이 한 1~20%였다면 지금은 95% 정도...? 요즘 내가 사는 지역에 확진자가 아주 급격히 늘고 있어서 외출이 거의 아예 금지된 상태라 집에서 공부나 열심히 해야겠다. 얼른 코로나가 다시 가라앉았으면 좋겠는데 지금 당장 그럴 기미도 없고 상황이 데자뷰라 답답할 뿐이다. 더 길게 말을 하고 싶지만 그랬다가는 노트북이 급격히 늙을 것 같아서 이만 말을 줄이고 잠이나 자러 가야겠다...ㅎㅎ 

 

 

관련글 더보기

댓글 영역