본문 바로가기

프로그래밍기초

C, C++, java 등 언어 공통 반복문 상세설명!!

아무것도 하기싫고 밖에는 비가내리고 날씨는 꾸루찝찝하고

그렇다고 가만히 있자니 시간이아깝고

블로그 포스팅이나 써볼까요?

 

참고로 자바나 C언어나 C++이나 문법이 대부분 동일하기 때문에 예시는 번갈아가면서도 모두

익힐수 있도록 했어요 

사실 어떤 언어든지 그건 도구일뿐.. 목적은 아니니깐요

 

반복문

이번 포스팅은 기초 중에 기초!! 반복문에 대해서 써볼께요

작업자동화! 최근에도 이곳 저곳에서 일정한 작업을 자동으로 기계가 많이 수행해주고 있죠

반복문은 어떤 작업이 반복적으로 수행되도록 제어할 때 사용해요

 

반복문의 기초지만 진짜 중요도가 높습니다. 소요되는 돈이 다 반복문에서 결정난다고 해도 과언이 아닙니다

나중에~ 알고리즘 하면서 어떻게 하면 효율적으로 반복문을 사용할수 있을지 고민하는 자신의모습을

발견하게 되실겁니다.

 

C언어

자 모이터에 hello world! 를 10000번 출력하고싶어요. C언어를 예로 들면 출력함수가 printf이므로

 

이걸 10000번쓰면 되겠죠

 

java언어

 

노가다지만 뭐 우리에겐 컨트롤 씨 컨트롤 브이가 있으니 어렵지 않을수도 있습니다

하지만 만약에 2*1+2 , 2*2+4 이렇게 매 줄 구구단을 출력하고 싶다면? 숫자가 바뀌어도

복붙도 못해요 .. 노가다가 배로 뜀..

 

프로그래밍 언어에서는 이를 for와 while 이라는 키워드로 일정한 규칙을 자동으로 반복해줄수있습니다

즉 컴퓨터에게 명을하는 명령어입니다

 

1.while 문

 

while문부터 살펴볼까요? while문은 반복을 할까? 말까? 를 특정 조건을 기준으로 판단합니다

조건이 맞으면 수행하고 틀리면 반복되는 loop구문을 빠져나옵니다

'while(조건)' 이렇게 while ㄱ옆 괄호 사이에 조건을 넣어줍시다

 

자 num은 처음에 초기값이 0입니다. num<3을 만족하기때문에 Hello World를 출력하겠죠

눈치채셧겠지만, while문은 소괄호 안에서 반복의 조건을 명시하고, 이 조건이 만족되는 동안 중괄호 안에 

존재하는 코드가 반복 실행되는 구조를 가집니다

 

실행순서

1. 첫라인에서num을 초기화하고

2. 두번째 라인에서 while을 만나면()안의 조건을 확인합니다

3. 중괄호 안에 내용을 수행합니다

4. 중괄호 닫기를 만나면 다시 두번째 라인에 있전 while문으로 돌아가서 반복합니다.

 

근데 여기서 문제는 num은 계속 3보다 작기때문에 이실행 반복을 빠져나갈 수 없습니다

영원히 끝나지 않는 무한루프에 빠진거에요 ( 실제로는 운영체제가 중간에 이상함을 느끼고 제제를 걸긴하지만 )

반복문을 사용할 때에는 무한루프의 가능성을 꼭 조심해주셔야 합니다

mum++은 참고로 num 값에 1을 증가시켜라! 라는 명령어입니다

num이 계속 증가함으로써 언젠가는 3보다 같거나 커지겠죠

 

2. do-while문

 

do while문은 말그대로 먼저 do 일단 실행하고 조건을 뒤에확인을합니다

 

while(조건)이 뒤로 간 것을 볼수가 있죠

이럴 경우 일단 Hello World를 출력하고 num을 증가시킨후, 조건을 판별 합니다

즉 앞에는 num=0 일때 조건을 판별하고 알고리즘으로 들어갔다면, 이번은 알고리즘을 수행하고 

num=1일 때 조건을 판별하는 거죠. 똑같은 while문 예시를 do while문으로 변환한 것처럼 while문과

애 while문은 상호변환 가능합니다

 

while VS do while

 

그러면 언제 do while을 쓰고 언제 while을 사용하나요?

 

사실 서로 변환이 가능하기 때문이 굳이 언제 얘를 써야하고 얘를 쓰지말아야한다 이런건 없습니다. 편의에 따라

사용하시면됩니다 일반적인 경우 while를 사용하는데 가끔 코딩을 하다보면 do while이 편리하게

사용될때가 있어요 반복영역이 무조건 한 번 이상 실행되어야 할 경우 do while을 많이 사용합니다

그런경우 있잖아요.. 종료하시려면 0번을 눌러주세요~ 0번을 누르기 전에는 계속 반복되는 겁니다

 

물론 이렇게 while문으로 반복을 받아도 되지만 그럴경우 nextlnt 앞에 일단 수행해줘야

조건을 만들 수 있잖아요 근데 만약에 여기 횟수 조건이 더 붙었다? 그러면 

반복되는 작업의 경우 실제 수행되는 반복수보다 -1이 되니까 헷갈릴 수도 있어요

근데 do while문을 사용하면

 

이렇게 훨씬 간편해질수 있습니다.

 

3. for문

 

다음 for명령어에 대해 알아볼게요! while문과 똑같이 반복을 위한 키워드예요.

근데 for문은 while문과 달리, 반복을 위한 조건과 연산등을 한 데 묶어서 만든 반복문이예요.

한 예로 while문에서는 무한루프에 걸리지 않기 위해, 즉 조건을 거짓으로 만들기 위해서 중괄호 마지막에 num++ 이렇게 영향을 미치는 요소에 변화를 주었죠??

for문은 한 라인에 얘네가 다 들어가요

 

for문 문법!

 

문법은 이와 같습니다.

1. while문과 마찬가지로 먼저 초기화를 진행하고,

2. 조건에 부합하는지 판별합니다. 조건의 결과가 true면

3. 중괄호로 들어가 내용을 수행하고!!

4. 마지막 증감식을 수행합니다.

어디 한번 사용 방법을 코드로 볼까요?

 

 

이번엔 예시를 자바스크립트 언어로 들어봤어요 ㅎㅎ 자바스크립트는 'var'이라는 키워드가 타입을 나타냅니다.

alert은 경고창으로 띄울 때 사용하는 함수예요.

while문이랑 똑같은 역할을 하는데, 첫 라인에서 수행되었던 초기화와 마지막 라인에서 수행했던 num++가 모두 for한 라인에 들어간 것을 알 수 있어요!

 

나머지는 다음시간에 알아볼께요