7/11

채언·2022년 7월 12일
0

1.반복문

  • 횟수에 대한 반복과 조건에 대한 반복으로 나눌 수 있다.
  • 같은 내용을 계속 입력하고 출력하는 비효율적인 동작의 반복을 간단하게 줄임으로서 효율적으로 만들 수 있다.
  • 횟수에 대한 반복은 for문이, 조건에 대한 반복문은 while문이 더 적합하다.

(1) for 문

  • for ~ in 키워드 (반복횟수):
    실행문 ....................................... 이런 형태로 쓴다. (if 문과 같이 실행문 자리에 pass 사용 가능)
  • for i in range(1,10) 은, 반복문 for문이 계속 반복이 되는데, in range() 지정해준 범위 내에서 횟수만큼 반복이 된다는 것이다. i는 임의의 변수이고 range 내의 범위에서 돌면서 i의 값이 변경된다. 즉, range(a,b) 에서, a 부터 b-1 까지 1씩 커지면서 i는 1, 2, 3 ... 9 까지 바뀌면서 할당되고 전체적으로 구문이 반복된다는 의미이다.
  • 구구단을 입력받아서 시작할 수도 있다.
  • 문자열로도 반복 가능하다.
  • 이때 range() 함수는, 기본 형태가 range(a,b,c) 이고 이는 a 에서 시작하여 b-1에서 끝나고 c 간격으로 변화한다는 함수이다. a 가 0 이거나 c 가 1일 경우 생략할 수 있다.
  • 시작할 숫자와 끝낼 숫자를 입력받고, 2씩 증가하도록 한 예시

(2) while 문

  • while 문 안의 조건에 맞으면 실행을 반복하고 그렇게 하다가 조건에 맞지않게 되면 반복을 그만한다.
    while 조건문 ~ :
    실행문 ................... (if , for 문과같이 실행문에 pass 사용가능)

EX) 1-100까지 2와 3의 배수를 구분지어 출력하는 예

  • while 문 이전에 n 을 1 로 지정, while의 조건은 n이 100이하일때 까지로 한다. 그 아래 if 문으로 2와3의 배수를 구분짓고 , 마지막에 n +1 는 꼭 해야 무한루프를 돌지 않는다.
  • for 문과 while문으로 1-10 까지의 합을 구한 예

EX) 연필의 길이가 현재 30cm 이고 최소15cm 는 되어야 사용 가능하다. 한번 깎을때마다 0.3cm씩 깎인다고 하면 몇 번 깎을때까지 사용가능한가 ?

  • 현재 길이는 n 으로 두고 최소를 15 로 둘때, 깎이면서 n이 15 이상일 때에만 0.3 씩 마이너스 하도록 while문을 작성. 15보다 작아지면 while 문을 끝냄으로 깎기 가능한 횟수를 구한다.

(3) 무한루프

  • while 조건문이 true 이면 실행문이 실행되고 false인경우 종료가 되기 때문에, 조건문이 계속 true 라면 끝나지 않는 무한루프를 돌게 된다. 그렇지 않기 위해서는 원하는 조건에 맞게 출력하고 종료될 수 있도록 n 값을 변경해주는것이 중요하다.
  • 또 다른 방법으로는, 1 ~ n 까지 합을 더하는 while 문에서 조건식에 논리형을 넣은경우 무한루프를 돌 수 있다. 무한루프를 돌지 않게 하기위해서는, if 문을 이용해 원하는 값에서 논리식이 false가 되도록 지정해주어야한다.

(4) 반복문 제어

1) continue

  • 반복문 실행중, 조건에 해당하면 올라가서 반복문을 다시 실행, 해당하지 않은경우는 내려가서 실행문 실행한다.

    EX) 3과7의 공배수를 찾고 그중에서 최소공배수를 찾는다.

  • 3으로 나누어서 0이 아니거나, 7로 나누어서 0이 아닌 수들은 다시 for 반복문으로 돌아가도록 continue 하고, 그 외에는 공배수로 출력되도록 한다. 가장 for문 시작전에 common 을 0으로 할당하고 처음으로 나온 공배수 값인 n 을 common에 할당하고 출력한다.

2) break

  • 언제까지 반복해야 필요한 값이 나올지 모르기 때문에 계속 반복을 하는데, 필요한 값을 얻고나면 break 로 반복문을 종료한다.
  • 1 ~ 100 까지 합을 구하다가 총 합이 100 이 넘는 순간의 정수를 찾고, 그 이후는 break로 끝낸다.

(5) 중첩 반복문

  • for 문 안의 for 문으로 반복문 안의 반복문을 설정 할 수 있고, 두 개 이상 쓰면 복잡하고 비효율적이어진다.
profile
화이팅!

0개의 댓글