for 반복구문

최지원·2020년 6월 14일
0

while

while (조건식) {
    반복하게 될 문장
    }

while 반복문은 지시어 while 로 시작한다.
소괄호 () 안에 조건식이 들어가는데
조건식의 결과가 true 또는 false 만 가능하다.

조건식이 true를 만족하는 경우에는 {} 안의 문장이 실행된다.

조건식 false가 되면 더이상 반복을 실행하지 않는다.

while 반복문에도 continue 와 break 문을 사용할 수 있다.

do {
   반복하게 될 문장
} while (조건식)

do while 반복문은 맨 앞에 위치한 지시어 do 의 사전적의미 그대로, 처음은 조건 결과와 상관 없이 무조건 do!

조건식의 결과값을 확인하고 다음의 흐름은 이전 while과 동일하다.

var hometown =[
 {name: '진', city: '과천'},
 {name: '남준', place: '일산', city: '고양'},
 {name: '호석', place: '광주', city: '전라도'},
 {name: '지민', place: '부산', city: '경상도'}
 ];
 
 // 변수 hometown 선언. 변수에는 객체 자료형 요소가 4개 들어 있는 배열을 할당.
 
 var isHometown = function(h, name) {
  console.log('함수가 실행되었습니다. ${h..city} 도시에서 ${name} 을 찾습니다.);
  
 // 인자값을 h와 name을 받는 함수 function 을 선언한다.
 
 if (h.name  === name) {
  console.log('${h.name}의 고향은 ${h.city} ${h.place} 입니다.');
  return true;
 }
 return false;
 }
 
 // 객체인 h의 name과 인자로 받은 name 이 다른경우 false를 반환하여 함수를 종료시킨다.
 값이 동일하면 console.log 를 출력하고 true를 반환한다.
 
 var h;
 while (h = hometown.shift()) {
  if(!h.name||!h.city||!h.place) continue;
 
 // shift()는 배열의 앞에서부터 값을 하나씩 빼오는 함수.
 h변수에 hometown.shift()로 반환된 값을 할당하는 것과 동시에 할당된 값을 확인한다.
 hometown의 요소는 객체로 채워져 있어 값이 유효한 경우에는 true, 유효하지 않으면 false를 반환하고 이를 통해 반복문을 실행한다.
 변수 h에 할당된 객체의 name, place, city 속성이 모두 있는지 확인한다. 하나라도 있는 경우 continue문을 통해 반복문의 다음 순서로 넘어가게 된다. place 속성이 없는 {name: '진', city: '과천'} 인 경우 이 조건식을 충족하여 continue가 실행되어, 아래 문장들은 실행되지 않은 채 다음으로 넘어간다.
 
 var result = isHometown(h, '호석');
 if (result) break;
}
//isHometown 함수에 h변수와 '호석' 값을 넣어 결과를 반환받는다. result 값이 true 이면 break 문을 통해 반복문을 종료시킨다. 이전 함수 설명을 미루어보아 {name: '호석', place: '광주', city: '전라도'} 요소일 때 true 임을 알 수 있습니다. 따라서 while 반복문은 배열 3번째 값까지만 실행된다.

var i = 0;
var names = ['남준', '정국', '윤기', '호섭'];
var cities = ['경기', '부산', '대구', '광주'];
// 빈 배열이 된 hometown 을 다시 채울 변수를 준비한다. names 배열과 cities 배열 그리고 각 배열의 인덱스(순서)를 매칭해줄 i 변수에 초기값을 할당하여 선언한다.

do{
  hometown[i] = {name: names[i], city: cities[i]}; i++
} while (i<4);

hometown 배열 값에 인덱스 0부터 객체 값을 할당하낟. 이때 names, cities 배열 또한 동일한 인덱스에서 값을 가져와 넣는다. 예를 들면 i가 1이면 name은 '정국' city는 '부산' 이 되어 hometown[1]에는 {name: '정국', city: '부산'} 이 할당된다.
i 변수 값에 +1 을 더한다.

do - while 의 조건식으로, i 변수값이 4보다 작은 경우에만 반복문을 실행시킨다.


console.log(hometown);

함수가 실행되었습니다. 고양 도시에서 호석을 찾습니다.
함수가 실행되었습니다. 전라도 도시에서 호석을 찾습니다.
호석의 고향은 전라도 광주입니다.



 
 
 
 
 
 
 
  
  
  
  

0개의 댓글