본문 바로가기

primer plus

[c primer plus] chapter06 C의 제어문: 루프

  • while문(진입 조건 루프)

중괄호로 묶지 않으면 무한 루프 

관계 표현식이 참이면 1 거짓이면 0으로 평가된다.

while(goats!=0) 는 while(goats) 로 대체할 수 있다.

 

while 조건에서 ==가 아닌 =를 사용하는 경우, ==는 관계 연산자이지만 =는 대입 연산자이기 때문에강제로 중단시킬 때까지 실행된다.(신택스 에러)

 

  • _Bool

_Bool 은 부울 변수를 위한 C의 데이터형 이름이다

_Bool형 변수는 1(참) 또는 0(거짓) 값만 가질 수 있다.

 

  • 우선순위

산술 연산자 > 관계 연산자 > 대입 연산자

 

  • 미확정(indefinite) 루프

검사 표현식이 거짓이 되기 전까지 루프를 몇 번이나 실행할지 미리 알지 못한다

 

  • 카운팅(counting) 루프

미리 확정된 반복 횟수만큼 루프를 실행한다.

 

카운팅 루프 설정

  1. 카운터 초기화
  2. 정해진 어떤 값과 카운터 비교
  3. 루프 실행할 때마다 카운터 갱신

 

  • for문(진입 조건 루프)

초기화, 검사, 갱신이 한곳에 모여있다.

증가 연산자, 감소 연산자, 산술 급수, 기하 급수등으로 증가시키거나 감소시킬 수 있다.(유연성)

 

  • 대입 연산자

scores += 20 -> scores = scores + 20

dimes -= 2 -> dimes = dimes - 2

scores *= 2 -> scores = scores * 2

time /= 2.73 -> time = time / 2.73

reduce %= 3 -> reduce = reduce % 3

 

  • 콤마 연산자

두 표현식을 하나로 연결한다.

왼쪽에 있는 표현식이 먼저 평가된다.

for 루프 제어 표현식에 더 많은 정보를 넣기 위해서 사용된다.

 

  • do while문(탈출 조건 루프)

루프 안에 있는 문장들이 적어도 한 번은 실행된다.

do while 루프 자체가 하나의 문장으로 간주되므로 끝에 세미콜론(;)이 필요하다.

 

  • 중첩 루프(nested loop)

데이터를 행과 열로 표시하는 용도로 사용된다. 

외부 루프(outer loop)  내부 루프(inner loop)