-
[C언어] 사용자 정의 함수, 중첩 루프Stage/Computer Science 2021. 5. 27. 09:02
학습목표
사용자 정의 함수와 중첩 루프를 작성할 수 있다.
1. 사용자 정의 함수
#include <cs50.h> #include <stdio.h> int get_positive_int(void); int main(void) { int i = get_positive_int(); printf("%i\n", i); } int get_positive_int(void) { int n; do { n = get_int("Positive Integer: "); } while (n < 1); return n; }
- get_positive_int()라는 함수를 호출하고 있는데, 이는 CS50 라이브러리에는 없는 함수이다.
위 코드에서 정의해놓은 get_positive_int() 함수를 살펴보자.- int get_positive_int(void) 여기서 (void)는 입력을 아무것도 받지 않는다는 의미이다. 가장 앞에 있는 int는 출력을 int로 하겠다는 의미이다.
출력 또한 하지 않길 원한다면 int -> void라고 적어주면 된다.
- int get_positive_int(void) 여기서 (void)는 입력을 아무것도 받지 않는다는 의미이다. 가장 앞에 있는 int는 출력을 int로 하겠다는 의미이다.
- do-while 루프를 사용하고 있는데, while 루프와 비교했을 때 어떤 차이가 있는지 살펴보자.
- while을 단독으로 사용하면 while의 조건이 참이어야만 코드를 수행한다.
- 반면에 do-while은 do를 무조건 한 번은 수행한다.
2. 중첩 루프
슈퍼 마리오 게임에서 마리오가 공중에 떠 있는 벽돌에 점프해서 아이템을 먹는 모습을 떠올려보자.
벽돌을 연속해서 가로로 출력하고 싶다면 어떻게 해야할까?#include <cs50.h> #include <stdio.h> int main(void) { int n; do { n = get_int("Size: "); } while (n < 1); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("#"); } printf("\n"); } }
- do를 만나서 사용자에게 n 값을 받는다.(n = 4 라고 가정)
- for 루프를 만난다.
- 첫 번째 for 루프에서 i가 0일 때, 두 번째 루프를 만나면 '#'이 4번 출력된다. (####)
- 두 번째 루프를 빠져나와서 줄바꿈을 한다.
- 이를 4번 반복하게 되면 가로 4 * 세로 4개의 '#'이 출력된다.
#### #### #### ####
'Stage > Computer Science' 카테고리의 다른 글
[배열] 컴파일링 (0) 2021.05.27 [C언어] 하드웨어의 한계 (0) 2021.05.27 [C언어] 자료형, 형식 지정자, 연산자 (0) 2021.05.27 [C언어] 조건문과 루프 (0) 2021.05.26 [C언어] 문자열 (0) 2021.05.26 - get_positive_int()라는 함수를 호출하고 있는데, 이는 CS50 라이브러리에는 없는 함수이다.