이전에 공부한 구구단 코드를 이용하여 함수를 공부해보자.
함수를 사용하는 이유는?!
분할 작업을 할 수 있기 때문이다.
(만약 여러사람과 프로그램을 만든다면 각 역할을 분담하여 코드를 짜고
원하느 부분에서 코드를 실행만 하면 되기 때문이다.)
++ 더해서 간결하게 보이기에 가독성을 높일 수 있다.
(이해가 안간다면 일단 보자.)
그렇다면 2단을 출력하는 함수를 만들어보자.
#include <stdio.h>
void dan2() {
int i, p;
p = 2;
printf("%d\n", p);
for (i = 1; i < 10; i++) {
printf("%d * %d = %d\n", p, i, p * i);
}
}
int main() {
dan2(); //dan2 라는 함수를 만든다.
}
보는 바와 같이 3째 줄의 void dan2() 가 먼저 실행되는 것이 아닌
int main()이 먼저 실행되며 dan2(); 함수로 이동하게 된다.
그 후 2번에서 dan2()가 실행되며 출력되는 것이다.
#include <stdio.h>
void dan3() {
int i, p;
p = 3;
printf("%d\n", p);
for (i = 1; i < 10; i++) {
printf("%d * %d = %d\n", p, i, p * i);
}
}
void dan2() {
int i, p;
p = 2;
printf("%d\n", p);
for (i = 1; i < 10; i++) {
printf("%d * %d = %d\n", p, i, p * i);
}
}
int main() {
dan2();
dan3();
}
이렇게 2단과 3단을 출력할 수 있으며
가장 큰 특징은 dan3() [3번째 줄] 과 dan2() [14번째 줄] 을
바꾸어도 26번째 코드에서 dan2()가 먼저 실행되기에
2단부터 출력된다.
분할 작업을 할 수 있는 가장 큰 이유이다.
하지만 이렇게 함수를 만들 경우 2에서 9까지의 함수를 만들어야한다.
매개변수를 이용하여 코드를 줄여보자.
int main() 에 dan2()를 dan(2)으로 고친다.
(3단도 마찬가지)
그리고 void dan() 부분도 아래와 같이 수정해보자.
#include <stdio.h>
void dan(int p) {
int i;
printf("%d\n", p);
for (i = 1; i < 10; i++) {
printf("%d * %d = %d\n", p, i, p * i);
}
}
int main() {
dan(2);
dan(3);
}
p = 2; 를 지워도 되는 이유는 int main() 에서의 dan(매개변수)가
void dan(int 매개변수) 로 값을 받았기 때문이다.
마지막으로 2단부터 9단까지 출력하는 함수를 직접 작성해보고 비교해보자.
#include <stdio.h>
void dan(int a) {
int i;
printf("%d\n", a);
for (i = 1; i < 10; i = i++) {
printf("%d * %d = %d\n", a, i, a * i);
}
}
int main() {
int j;
for (j = 2; j < 10; j++) {
dan(j);
}
}
https://book.naver.com/bookdb/book_detail.nhn?bid=8187381
'프로그래밍 언어 > C언어' 카테고리의 다른 글
C언어 - 사용자 정의 함수 (최종) (0) | 2021.01.14 |
---|---|
C언어 - 매개변수 (0) | 2021.01.13 |
C언어 - switch문 (0) | 2020.08.17 |
C언어 - 논리연산자 (0) | 2020.08.17 |
C언어 - 연산자 (0) | 2020.08.12 |