이번에는 선택적으로 실행 할 수 있는 if 문에 대해서 알아보도록 하겠습니다.






1. if 문이 필요한 이유


귀찮게 if 문도 알아야 되는 구나 생각 하실 수 있습니다.


계산기를 예로 들어 보겠습니다.


분명 자신은 덧셈 결과만 알고 싶은데, 덧셈, 뺄셈, 곳셈, 나눗셈등 모든 결과가 나오면 불편합니다.


다음 예제를 통해서 알아보겠습니다.



위의 예제에서 알 수 있듯이 if 문으로 지정을 해서 원하는 연산만 실행이 되도록 할 수 있기에 if 문을 사용합니다.







2. if 문의 구조와 흐름


if 문의 경우 if 문, if~else 문, if~else if~else 문 이 있습니다.


* 이번 글에서는 if 문만 다루도록 하겠습니다. if~else 문, if~else if~else 문은 다음 글에서 다루도록 하겠습니다.


if 문의 경우 구조는 다음과 같습니다.



* 5행의 // 주석 처리와 7행과 18행의 /* */ 주석처리를 빼고 보시면 됩니다.


위 예제에서 확인 할 수 있듯이 if 문 또한 중괄호 { } 를 생략 가능합니다.


또한 if 문의 조건식에서 조건이 참이면 해당 문장을 실행하고, 다음 행으로 넘어갑니다.


다음 행으로 넘어가서 조건식이 거짓이어도 다음 문장의 내용을 '또' 한 번 읽고, 조건의 참/거짓 여부를 확인 후 실행 할지 안 할지 판 단 후 종료하게 됩니다.


이러한 불편한 점 때문에 조건이 참일 때까지 계속 검사 하다가 조건이 참이면 나머지는 안 하는 방법이 없을까? 라는 생각에서 if~else 문과 if~else if~else문이 나오게 되었습니다. ( 위에서 한 번 언급 한 것처럼 if~else 문과 if~else if~else 문은 다음 글에서 다루도록 하겠습니다. )


이렇듯 if 문을 사용하면 사용자가 원하는 대로 '선택' 할 수 있다는 점 때문에 if 문을 사용합니다.






이번 글은 여기서 마치도록 하겠습니다.



다음에는 if~else 문과 if~else if~else 문에 대하여 올리도록 하겠습니다.










'프로그래밍 언어 > C' 카테고리의 다른 글

C언어 공부 관련!  (0) 2019.08.16
C언어 조건문 - if 문 (2)  (0) 2017.02.16
C 언어 반복문의 중첩  (0) 2017.01.15
C언어 반복문 - for문 (2)  (0) 2017.01.15
C언어 반복문 - for문 (1)  (0) 2017.01.12

이번에는 C언어에서 반복문들의 중첩에 대하여 알아보겠습니다.







1. for 문의 중첩


while 문, do~while 문 의 중첩처럼 for 문 또한 중첩이 가능하고, 코드 간결화 및 가독성과 효율을 높여주는 방법으로 중첩을 사용합니다.


따로 설명 하지는 않고, 반복문들의 중첩에 대한 구구단 예제를 통해 알아보고, 익숙해지는 시간을 가지도록 하겠습니다.








2. for / for 구구단



(개인적으로 for 문이 제일 편했습니다.)








3. for / while 구구단








4. for / do~while 구구단








5. while / while 구구단








6. while / for 구구단








7. while / do~while 구구단









8. do~while / do~while 구구단








9. do~while / while 구구단








10. do~while / for 구구단






여러가지 반복문들의 중첩을 구구단을 통해 알아보았습니다.


순서만 바꿔주면 된다라는 것이 이번 글의 목적이 아닙니다.


C언어의 특징과 각 반복문들의 특징을 잘 알고, '계속 연습 해보면서 익숙해져야 된다'는 것이 이번 글의 요점입니다.


처음 접하시는 분들의 경우 while, do~while, for 문에 대해서 완벽히 이해하셨어도 바로 적용이 안 되시는 경우가 대부분입니다.

(물론 예외이신 분들도 존재합니다.)


따라서 구구단은 단순한 예제일 뿐이고, 여러번 중첩해서 사용하는 연습을 해보셔야 됩니다.


for / for 반복문을 다른 반복문으로 바꿔본다던지 하는 식으로 연습 해보시는 것이 가장 좋습니다.

(꼭 중첩만이 아니더라도, 중첩이 없는 반복문을 중첩이 없는 다른 반복문으로 바꿔본다던지 하는 방식도 좋습니다.)






이것으로 반복문들의 중첩에 대해서 알아보았습니다.





다음에는 '조건에 따른 흐름의 분기' 에 대해서 공부하고 글을 올리도록 하겠습니다.










'프로그래밍 언어 > C' 카테고리의 다른 글

C언어 조건문 - if 문 (2)  (0) 2017.02.16
C언어 조건문 - if 문 (1)  (0) 2017.01.26
C언어 반복문 - for문 (2)  (0) 2017.01.15
C언어 반복문 - for문 (1)  (0) 2017.01.12
C언어 반복문 - do~while문  (0) 2017.01.09

이번에는 반복문 중 하나인 for 문의 생략 가능한 부분과 무한루프에 대해서 알아보도록 하겠습니다.








1. for 문 에서의 생략


저번 글에서 for 문의 구조는 for ( 초기식 ; 조건식 ; 증감식 ) 이렇게 된다고 글을 작성 했었습니다.


하지만 이러한 초기식, 조건식, 증감식을 '생략' 하고 사용할 수 있습니다.


예제를 통해서 알아보도록 하겠습니다.



위의 예제는 입력 받은 값들의 평균을 출력 해주는 예제입니다.

* num++; 은 평균 계산을 위해 작성한 부분이고, (num - 1)은 조건식의 input>=0.0이 아닐 경우 음수의 값은 평균 계산에서 제외 시키기 위한 부분입니다.


평균 계산을 원하는 값들을 계속 입력 받아야 되고, 사용자가 원하는 시기에 음수 값을 입력해서 평균을 계산하는 소스입니다.


위의 예제의 경우 for( 초기식 ; 조건식 ; 증감식 ) 에서 초기식, 증감식 이 생략 되었습니다.


생략 해준 이유는 간단하게 말하면 필요 없기 때문입니다.


input 값은 사용자로 부터 값을 입력 받아서 입력 받을 때마다 해당 값으로 초기화가 되고, 사용자가 언제 입력을 종료할지 모르기 때문에 초기화를 필요로 하는 초기식 및 조건식을 충족시키기 위한 증감식 또한 필요하지 않게 됩니다.


따라서 초기식과 증감식은 필요하지 않기에 생략을 하고, 조건식만 충족시켜서 반복문을 탈출하면 되기에 조건식만 입력한 경우입니다.








2. for 문의 무한루프


이번 글의 첫 번째 주제에서 초기식, 증감식의 생략을 보고, 조건식도 생략 가능하지 않을까? 라는 궁금증을 가지시는 분도 계실겁니다.


당연히 생략 가능합니다.


예제를 통해서 알아보도록 하겠습니다.



위의 예제에서 조건식의 생략이 가능한 것을 알 수 있습니다.


또한 예제에서 확인 가능한 것은 다음과 같습니다.


1) 초기식 생략 가능

2) 조건식 생략 가능

3) 증감식 생략 가능

4) 무한루프 발생

이로써 초기식, 조건식, 증감식 의 생략이 모두 가능한 것을 알 수 있습니다.


하지만 여기서 궁금증을 가지시는 분들이 계실 겁니다.


조건식의 생략에 대해서 제대로 설명이 안 되어 있네? 갑자기 무한루프는 왜 나왔지? 라는 생각을 하시는 분 당연히 계실 겁니다.


while 문, do~while문에 대해서 글을 올리면서 반복문의 조건식이 항상 '참'이 되면 반복문을 탈출하지 못 하고, 무한루프를 형성하게 된다라는 글을 올렸었습니다.


이 때, while 문과 do~while 문에서는 조건식에 0을 제외한 '참'을 나타내는 값 중 대표인 '1'을 사용해서 조건이 항상 참이도록 했었습니다.


하지만 for 문에서는 조건식을 '생략' 함으로 써 무한루프를 형성하게 됩니다.


물론 변수 선언 해주고 해당 변수의 값을 1로 지정 해주고 조건식을 써줘서 for 문의 무한루프를 형성해도 됩니다.


하지만 for 문의 경우 생략이 가능한데, for 문에서의 조건식을 생략할 경우 조건을 항상 '참'으로 인식하게 됩니다.


따라서 for 문의 조건식을 생략할 경우 무한루프를 형성하게 됩니다.


또한 for 문에서 조건식을 사용하기 복잡하거나 까다로울 경우 추후 올릴 예정인 if 조건문과의 연관성이 있습니다. if 문으로 조건을 걸어서 무한루프의 반복문을 탈출하는 경우도 있습니다.











이것으로 for 문의 생략과 무한루프에 대하여 알아보았습니다.


다음에는 for 문의 중첩과 다른 반복문들의 중첩에 대하여 글을 올리도록 하겠습니다.









'프로그래밍 언어 > C' 카테고리의 다른 글

C언어 조건문 - if 문 (1)  (0) 2017.01.26
C 언어 반복문의 중첩  (0) 2017.01.15
C언어 반복문 - for문 (1)  (0) 2017.01.12
C언어 반복문 - do~while문  (0) 2017.01.09
C언어 반복문 - while문(2)  (0) 2017.01.02

+ Recent posts