스터디/개인스터디

#003 자바스크립트 200제 - 조건문,반복문

d0201d 2020. 12. 6. 00:49

조건문  - if, else if, else

var number = 2;
if (number == 1) {
    console.log('number is 1');
} else if (number == 2) {
    console.log('number is 2')
} else if (number == 3) {
    console.log('number is 3')
} else {
    console.log('number는 1,2,3 중 해당하는 것이 없음');
}

//number is 2

 

조건문  - switch

var subject = '자바스크립트';                               
switch(subject) {                                   //switch(표현식) {
    case 'C언어' :                                  //case 값1 : 
        console.log('C++ 200제');		   //명령문1
        break;                                      //break;
    case '자바스크립트' :                           //case 값2 : 
        console.log('자바스크립트 200제');          //명령문2
        break;                                      //break;
    case '파이썬' : 
        console.log('파이썬 200제');
        break;
    default:                                        //default :
        console.log('셋다 아닙니다.')               // 명령문4
}

//자바스크립트 200제

- if 조건문을 사용하여 여러 조건문들이 중첩되어 복잡해 보이는 것을 switch를 사용해 정돈된 코드를 만들수 있음

- switch 표현식은 case의 값과 일치여부를 확인 (일치연산자 사용 ===)

- 위에서부터 순차적으로 일치하는 값이 나올때까지 case를 확인하며 일치하면 명령문을 실행

- 만약 일치하는 값이 없을경우 default로 선언된 명령문이 실행됨

 

 

반복문  - for

for (var i = 0; i < 10; i++) {   //초기값; 조건식; 어떤간격으로값이 변하는지;
    console.log(i + '번째 반복문장입니다.')
}


//0번째 반복문장입니다.
//1번째 반복문장입니다.
//2번째 반복문장입니다.
//3번째 반복문장입니다.
//4번째 반복문장입니다.
//5번째 반복문장입니다.
//6번째 반복문장입니다.
//7번째 반복문장입니다.
//8번째 반복문장입니다.
//9번째 반복문장입니다.

ex)

var hometown = [
    { name: '남준', place: '일산', city: '고양' },
    { name: '진', place: '과천' },
    { name: '호석', place: '광주', city: '전라도' },
    { name: '지민', place: '부산', city: '경상도' }
];

for (var i = 0; i < hometown.length; i++) {
    var h = hometown[i];

    if (!h || !h.city) {  // h 개체속성중에서 진은 city속성이 없기때문에 조건을 만족하여 
        continue;     // continue가 실행됨(배열에서 가져온 요소중 정보가 없는경우 다음순서로 넘김)
    }
    console.log(i + '번째 실행입니다.');

    if (h.name === '호석') {
        console.log(h.name + '의 고향은' + h.city + '' + h.place + '입니다.');
        break;
    }
}

//0번째 실행입니다.
//2번째 실행입니다.
//호석의 고향은전라도광주입니다.

 

반복문  - for in

var store = {snack:1000, flower:5000, beverage:2000}; //변수에 객체 값 할당.

//for (속성명 in 반복할 대상) {}
for (var item in store) { //store에 접근할 변수 생성(item)
    if(!store.hasOwnProperty(item)) { //hasOwnProperty를 이용하여 store객체에 item키 정보가 있는지 확인
        continue    //없으면 실행
    }
    console.log( item +'는 가격이 ' + store[item] + '입니다.')
}

//snack는 가격이 1000입니다.
//flower는 가격이 5000입니다.
//beverage는 가격이 2000입니다.

- 내부 요소 정보가 전달되어 코드가 실행됨

- for in 반복문을 사용할때는 hasOwnProperty를 사용하여 객체안에 속성이있는지 한번더 체크하는것을 권장

 

 

반복문  - while

- 조건식의 결과값은 true or false만 반환하며 조건식이 true를 만족하는 경우에만 실행

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

 

반복문  - do while

- 처음 조건결과와 상관없이 무조건 문장을 실행(1번 이상은 ) 그 후 조건식의 결과값을 확인하고 그 후 흐름은 while과 동일

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

ex)

var hometown = [               // 변수를 선언하고 변수에 배열 할당
    { name: '남준', place: '일산', city: '고양' },
    { name: '진', place: '과천' },
    { name: '호석', place: '광주', city: '전라도' },
    { name: '지민', place: '부산', city: '경상도' }
];

var isHometown = function(h, name) {   //h, name(인자값)을 받는 isHometown 함수선언
    console.log(`함수가 실행되었습니다. ${h.city} 도시에서 ${name}을 찾습니다. `)

    if (h.name === name) {  //참인 경우만 실행
        console.log(`${h.name} 의 고향은  ${h.city} ${h.place} 입니다.`)
        return true;
    }
    return false;  //거짓일 경우 false를 반환하며 함수종료
}

var h;
while (h = hometown.shift()) {   //shift:배열의 앞에서부터 값을 하나씩 빼오는 함수
    if (!h.name || !h.place || !h.city) {
        continue;
    }
    var result = isHometown(h, '호석');
    if (result) {
        break;
    }
}

var i = 0;
var names = ['남준', '정국', '윤기', '호섭'];
var cities = ['경기', '부산', '대구', '광주'];
do {
    hometown[i] = { name: names[i], city: cities[i] };
    i++;
} while (i < 4);

console.log(hometown);

//함수가 실행되었습니다. 고양 도시에서 호석을 찾습니다. 
//함수가 실행되었습니다. 전라도 도시에서 호석을 찾습니다. 
//호석 의 고향은  전라도 광주 입니다.
//0: {name: "남준", city: "경기"}
//1: {name: "정국", city: "부산"}
//2: {name: "윤기", city: "대구"}
//3: {name: "호섭", city: "광주"}


- shift:배열의 앞에서부터 값을 하나씩 빼오는 함수. 예를들어 [1,2]배열에 shift가 실행되어 1이 방출되면 배열은 [2]가 됨