C언어 복습

C언어 복습 10 (구구단을 외자 - 반복문)

Captic 2019. 6. 21. 10:12

참고: 정덕 - <컴맹을 위한 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를 감싸는 가장 가까운 위치의 반복문을 빠져나온다

예) 

while조건문이 1(참)이기 때문에 while만으로는 무한루프에 빠질 수 밖에 없지만 break를 통해 while을 벗어난다

 

 

- 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단 까지 한번에 실행

 

정답>>

...더보기
2단부터 9단까지 차례대로 출력된다