WebDevelop 수업 - Day14 JS : 조건문, 삼항식, 배열

김지원·2022년 6월 28일
0

WebDevelop2

목록 보기
14/34

조건문

if

{ ... } : 구현부
<script>
    if(조건) {
        // 조건이 참일 때
    }
    else {
        // 조건이 거짓일 때
</script>

else if

: else if 문은 여러번 추가 될 수 있고 그 어떤 경우에도 else보다 먼저나와야한다.

<script>
    if(조건1) {
        // 조건1이 참일 때
    } else if (조건2) {
        // 조건2가 참일 때 
    }
    else {
        // 조건1과 조건2가 모두 거짓일 때 
    }
</script>  
<script>
        if(1===1) {
  		//
        } else if (2===2) {
  		//
        } else if (3===3) {  
  		//
        } else {
  		//
        }
</script>
  • if가 거짓이지 않는 이상 넘어가지 않는다.
    if조건문은 딱 하나의 구현부만 실행한다.

switch

  • 모든 if는 switch로 변환이 된다.
  • 그런데 모든 switch는 if로 변환되지 않는다.
<script>
    switch (변수) {
        case1 :
            break;
        case2 :
            break;
        ....
        default :
    }
</script>
<script>
let letter = 'a';
     switch(letter) {
         case 'a' :
             console.log('에이');
             break;
         case 'b' :
             console.log('비');
             break;
         case 'c' :
             console.log('씨');
             break;
         default :
             console.log('그 외');
             break;
}
</script>

<script>
let start = 2;
   switch (start) {
       case 1:
           console.log('첫번째 도미노 무너짐');
       case 2:
           console.log('두번째 도미노 무너짐');
       case 3:
           console.log('세번째 도미노 무너짐');
       case 4:
           console.log('네번째 도미노 무너짐');
       case 5:
           console.log('다섯번째 도미노 무너짐');
}
</script>

  • break가 없으면 끝까지 다 실행을 한다.
<script>
	if(start==1) {
	       console.log('첫번째 도미노 무너짐');
	       console.log('두번째 도미노 무너짐');
	       console.log('세번째 도미노 무너짐');
	       console.log('네번째 도미노 무너짐');
	       console.log('다섯번째 도미노 무너짐');
	} else if (start == 1 || start == 2) {
	       console.log('두번째 도미노 무너짐');
	       console.log('세번째 도미노 무너짐');
	       console.log('네번째 도미노 무너짐');
	       console.log('다섯번째 도미노 무너짐');
	}
    .....
</script>
  • if문으로 switch를 나타내려면 이런식으로 다 작성을 해줘야한다.

삼항식

: 조건이 참이면 참 값을 , 조건이 거짓이면 거짓 값을 반환하는 함수이다.

(조건) ? (참 값) : (거짓 값)
<script>
        let n = 5;
        let result = n % 2 === 0 ? '짝수' : '홀수';
        console.log(result);
</script>

<script>
     if(n % 2 === 0) {
         result = '짝수';
     } else {
         result = '홀수';
     }
</script>
  • if문으로 풀면 이렇게 적을 수 있다.

배열(Array)

: 하나의 변수에 여러개의 값을 넣기 위해 사용

  • 대괄호를 사용하며 그 안에는 콤마로 구분한다.
<script>
    let arr = [1,2,3,4,5];
    console.log(arr.at(1));
</script>

< 메서드 >

arr.at(1);
== arr[1]
: 주어진 인덱스에 해당하는 아이템을 반환한다.

arr.pop(); // 5
: 배열의 마지막 값을 반환하고 배열에서는 삭제된다.

arr.push(6);
: 배열의 마지막 자리에 주어진 값을 추가한다.

arr.slice(a,b);
: 배열의 a번 인덱스 부터 b번 인덱스 까지의 값들을 가지는 새로운 배열을 반환한다.

arr.slice(a,b,c);
: 배열의 a번 인덱스 자리에 b개에 해당하는 아이템을 c...값으로 치환한다. 이 때 b가 0이면 치환하지 않고 추가한다.

  • 가령 [1, 4, 5].slice(1, 0, 2, 3)은 [1, 2, 3, 4, 5]
    추가로, ...c를 전달하지 않는다면 a자리 부터 b개에 해당하는 아이템을 삭제한다.

< 속성 >

arr.length(); : 배열의 길이(개수)를 반환한다.

 값    A  B  C  D  E  F
인덱스  0  1  2  3  4  5

splice(x , y , v)
	x : 인덱스      3(D부터라는 말이다.)
    y : 치환 개수    0	
    v : 값들	      D (E앞에 추가)

let emptyArr = []; : 비어있는 배열


문제 1) 자연로 이루어진 배열을 매개변수로 전달 받아 그 중 홀수만을 그 값으로 가지는 새로운 배열을 반환하는 filterOdds 함수를 만드세요.

가령,
let nums = [1,2,3,4,5,6,7,8];
let oddNums = filterOdds(nums);
console.log(oddNums); // [1,3,5,7]
<script>
let filterOdds = (nums) => {
    let oddNums = [];
    for(let i = 0; i < nums.length; i++) {
        if(nums[i] % 2 > 0) {
            oddNums.push(nums[i]);
        } 
    }
    return oddNums;
};
let nums = [1,2,3,4,5,6,7,8];
let oddNums = filterOdds(nums);
console.log(oddNums);
</script>

문제 2) 자연수로 이루어진 배열을 매개변수로 전달 받아 그 중 가장 큰 수를 반환하는 함수 getMax를 만드세요. 이 때 매개변수인 배열은 숫자 순서대로 정렬되어 있지 않습니다.

<script>
let getMax =  (nums1) => {
let result = 0;
for(let i = 0; i < nums1.length; i++) {
         if(nums1[i] > result) {
             result = nums1[i];
         }
    }
    return result;
}
let nums1 = [107, 36, 1198, 19];
let nums2 = [960, 388, 3190, 55];
console.log(getMax(nums1));
console.log(getMax(nums2));
</script>

profile
Software Developer : -)

0개의 댓글