관리 메뉴

hye-_

WHILE 문 본문

CS/C언어1

WHILE 문

hyehh 2023. 12. 7. 17:05
728x90
반응형
SMALL
728x90
SMALL
반응형

WHILE 문

NULL 문장 ● 세미콜론만 존재하는 문장
● 실행할 작업이 없다.
무한 루프
(inifinite loop)
● 반복이 무한히 계속되는 현상
● 절대로 피해야 할 오류
센티널
(sentinel)
● 데이터의 끝을 알리는데 사용되는 데이터 값
● 일반적인 데이터 값에서는 절대 등장할 수 없는 값으로 선택할 것 

01. 반복문의 개념

1. 반복문의 필요성

반복 (lteration)

같은 처리 과정을 여러 번 되풀이하는 것

 

반복이 필요한 예

학생 30명의 평균 성적을 구하는 경우라면 학생의 성적 읽기, 합 구하기 등

같은 과정을 30번 반복 필요함

 

프로그램에서 반복 코드 작성법

반복해야 하는 코드를 복사해서 붙여넣기로 작성할 수 있고, 더 좋은 방법은 반복문을 사용하는 것이다.

 

반복문(Loop)의 필요성

1. 어떤 단계를 반복하게 하는 것으로 반복문을 사용하면 프로그램이 간단하고 빠르게 된다. 

2. 복사-붙여넣기 보다 간결하게 한다.

3. 프로그램에 필요한 시간을 단축해 줄 수 있다.

 

반복문 사용


2. 반복문의 종류

반복구조

해당 조건이 만족되는 동안 단일 또는 여러 명령문을 반복적으로 처리하는 것을 말한다. 

 

반복문 종류

while 문 조건이 만족되면 반복을 계속하는 구조
즉, 조건만 본다 조건이 만족되면 수행하고, 또 조건이 만족되면 수행하고,... 
for 문 정해진 회수만큼 반복하는 구조
정해진 회수가 있다.
do while 문  반복할 명령문을 실행하고 조건 체크를 나중에 하는 구조 

02. WHILE 문 기본 구조

1. WHILE 문의 기본

주어진 조건이 만족되는 동안 명령문들을 반복 실행

즉, '참'인 동안 실행되고 거짓이면 while문을 빠져나온다. 

 

그런데, 이 명령문안의 조건이 변하지 않는다면

계속 참일것이니 계속 실행될 것이다. 그것을 '무한루프'라고 한다. 큰일 난다. 

 

반복문에서 제일 조심할것은 '무한루프'이다. 

무한히 반복되는것은 큰일이다.

 

그래서 참일경우의 명령문안에는 반드시

조건식을 거짓으로 만들도록 바꾸는 작업이 필요하다.

 

while문의 순서도

 

 

While 문의 기본 구조

 


2. WHILE 문의 활용

예 ) "Hello World!" 5번 출력하기

 

 

while문의 조건식을 보려면

조건식의 초기값이 위에서 반드시 정해져야 된다. 

 

i++;

조건식을 보고 반복해서 돌아가고 또 반복해서 돌아가고, 계속 반복할 것인데 조건식이 계속 참이면 안 된다. 

조건식의 있는 i를 명령문안에서 증감이 되어야 하나다.

 

while문의 조건식에 있는 변수가 중요하다.

변수의 초기값은 while문 위에서 (반복문 바깥) ,

변수의 증감은 while문 안에서 (반복문 안) 반드시 이루어져야한다.

 

만약 i의 초기값이 없다면 

오류가 난다

 

만약 종료조건이 없다면

무한 루프에 걸린다.

 


예 2 ) 구구단 2단 출력 프로그램


예 3 ) 제곱값 출력 프로그램

여기서 %5d 와 %5d의 공백도

문자열로 취급하기에 띄어쓰기가 적용되어 출력된다.


예 4 ) 1부터 10까지의 합 계산하는 프로그램 

 


예 5 ) 1부터 10까지의 홀수합 계산하는 프로그램 


예 6 ) 5개 정수 입력받아 합 계산하는  프로그램

다섯 번 받아서 입력하세요는

while보다 for문이 더 낫다.

 


 

예 7 ) 999 입력될 때까지 정수 입력받아 출력하는 프로그램 

위 예제처럼 while문은

종료조건이 정해질 때, 정혀져있을 때 while문을 사용한다.

 

종료값을 다른 말로

종료조건, 센티널 또는 '보초값'이라고 부르기도 한다.


3. IF 문과 WHILE 문 비교

 

if와 while문 형식이 똑같다.

조건식이 참일 때 실행하는 것도 똑같다.

 

if문은 조건이 만족되면 명령문은 한 번만 실행된다.

while문은 조건이 만족되면, 조건이 만족되는 동안 명령문은 여러 번 실행될 수 있다. 


03. BREAK 문과 CONTINUE 문

1. BREAK 문

break 문

반복 루프를 빠져나오는 데 사용한다.

 

원하는 만큼 얼마든지 둘 수 있다.

그러나 너무 많이 사용하면 코드가 난해해진다.

 

중첩 반복 루프(반복문안에 반복문)에서 break 문을 사용한다.

가장 가까운 반복문에만 영향을 끼치게 된다.


break 문의 사용 형식 

while문안에 if문

if문에서 break를 만나게 되면 가장 가까운 반복문!!! 반복문 while문을 빠져나간다. 

 

조건식1이 참이면

명령문1, 명령문2를 실행하고 나서 조건식2가 참이면 break문을 만나 while문을 빠져나간다.


예 1 ) 1부터 1000까지의 합을 계산하다가 5000이 넘는 최소의 값을 구하는 프로그램

1부터 1000까지 계속 구할 때

sum이 5000보다 크면 break, while문을 나가라 한다.

 

while문을 나가면

합이 출력된다.


2. CONTINUE 문

continue 문

현재 실행하고 있는 반복 과정의 나머지를 생략하고 다음 반복을 시작하게 한다.


continue 문의 사용 형식

while문 조건식1 참이면 

명령문1, 명령문2를 실행하고 나서 if 조건식2가 참이면 continue문을 만나 while문의 끝으로 바로 가서 다시 조건식1을 확인한다.


예 1 ) 1부터 10까지 중 3의 배수를 제외한 수들의 합을 계산하는 프로그램

 

i % 3 == 0

i를 3으로 나눠서 0이 나오면 3의 배수이다.

 

i++; 

i는 증가를 해줘야 된다. 증가를 안 해주면 무한루프가 된다.

 

continue;

컨티뉴를 만나면 while문 끝단으로 가서 다시 while문을 시작하게 된다.


3. while 문에서 주의할 점

1. 종료 조건에 주의해야 한다.

변수를 증가시켜야 할 때 증가시키지 않으면 또는 감소시키면 무한 반복된다.

 

2. 중괄호의 중요성

종료조건이 반복문 블록에 포함되어 있지 않으면 무한반복이 된다. 

 

3. 조건식 뒤에 세미콜론(;) 있으면 안 된다.

조건식 뒤에 세미콜론(;) 있으면 세미콜론만 존재하는 NULL 문장만 반복된다.'

 

 4. 조건식에 != 또는 == 을 사용하는 것은 위험하다.

실수로 무한루프 만들 수 있다.  

 

5. 조건식에서 0이 아닌 값은 참, 0은 거짓으로 간주한다. 

관계, 논리 연산자에서도 0이 아닌 값은 참, 0은 거짓으로 간주한다.

 

6. 조건식에 == 대신 =을 사용하는 경우

조건식에 == 을 =으로 잘못 작성하지 않도록 한다.


 

728x90
반응형
LIST

'CS > C언어1' 카테고리의 다른 글

함수의 개념  (1) 2024.01.29
FOR 문  (0) 2023.12.08
IF 문과 SWITCH 문  (1) 2023.12.06
SWITCH 문  (2) 2023.12.06
다중 IF 문  (2) 2023.12.05