C언어 복습 10 (구구단을 외자 - 반복문)
참고: 정덕 - <컴맹을 위한 C언어>
♨ 개인적 해석이 다분한 글임으로, 인지하지 못한 오류가 있을 수 있습니다 ♨
▣ while문과 for문
- while문: 조건이 충족되면(참이면) 실행, 충족되지 않으면(거짓이면) 종료
while(조건){
코드
}
예)
▣ do ~ while
- while문은 조건 검사를 먼저 검사한 후 실행문을 진행한다
-> while을 사용하면서 적어도 1회 실행한 후 조건검사를 하고 싶다면 do ~ while을 사용할 수 있다
예) 사용자로부터 특정한 입력을 받을 때 까지 반복하는 경우 / 카드 뒤집기, 지뢰찾기
do{
코드
}while(조건)
예)
- for문
for(①초기화; ②조건; ③증감){
코드
}
①초기화 : 조건에 쓰일 변수를 초기화하는부분
②조건 : 반목문이 반복될 조건(조건이 충족되면 실행 아니면 종료)
③증감 : 조건에 쓰인 변수의 값을 증감시키는 부분
->초기화는 맨 처음 한번만 실행된다 => 그 이후로는 조건 검사, 코드 실행, 변수 증가의 반복
예)
※주의사항 - for문 내에서 변수를 선언과 동시에 초기화 할 경우, 해당 변수는 for문 밖에서 사용할 수 없다
이것은 for문 뿐만 아니라, 반복문(while, do while 등)이나 외부함수를 만들어 사용할 때에도 동일하다
" { , } " 안에서 선언되는 것들은 그 안에서만 사용할 수 있다 (지역변수 - 전역변수의 관계)
▣ break & continue
- break는 반복문을 빠져나올때 사용, break를 감싸는 가장 가까운 위치의 반복문을 빠져나온다
예)
- contiue는 실행중인 위치에 상관없이 반복문의 조건검사 위치로 이동
-> continue에 걸린 if절이 참이면, 해당 조건을 제외/무시하고 다시 조건문 실행
예)
▣ 반복문 연습
- 연습1 - 소수(자신보다 작은 두 개의 자연수를 곱하여 만들 수 없는 1보다 큰 자연수) 판별기
+(약수/인수가 2개인 수)
1. 0, 1은 소수가 아니므로, 입력시 비소수 처리
2. 2 부터 자신까지의 수로 자신을 나누었을 때,
나누어 떨어지는 것이 1과 자기 자신만 있어야 소수
그 이상이면 합성수
3. 사용자에게 입력을 받아 인수의 갯수를 판단하여 결과 출력
정답>>

- 연습2. 구구단을 외자~ 구구단을 외자 (아이돌 아님)
1. 재귀함수 이용하여 구구단을 출력
2. if를 통해 현재 단을 다 실행하였으면( ㅁ × 9 까지 했으면), 다음 단으로 이동
3. if를 하나 더 이용하여 9단이 넘어가면(10단이 실행되지 않게) return
4. 한 번의 외부함수 실행으로 2단 ~ 9단 까지 한번에 실행
정답>>
