기본 문법|문

셀라문·2022년 2월 14일
0

JavaScript

목록 보기
10/27

문 (statement)

명령, 흐름을 제어한다.

조건문 : if-else 문

문법

if (조건식) {
   // statement1
} else if(조건식) {
   // statement2
} else {
   // statement3
}
  • if 안에 있는 조건식이 참인 경우 해당하는 if문, else if문을 실행 한다.

  • 조건문(if, else if)에 모두 해당하지 않으면 else에 있는 statement3 이 실행된다.

  • else if에는 갯수 제한이 따로 없다.

    if문의 중첩

var score = 96; 
var lecture = "sports"; 

if("sports" == lecture){ 
if (score >= 70){ 
    console.log("점수 : pass"); 
} 
else{ 
    console.log("점수 : fail"); } 
    }
    
else{ 
 if (score >= 90){ 
    console.log("점수 : A"); 
 }else if (score >= 80){ 
    console.log("점수 : B"); 
 }else if (score >= 70){
    console.log("점수 : C"); 
 }else if (score >= 60){
    console.log("점수 : D"); 
 }else { console.log("점수 : F"); } 
 }

조건 (삼항) 연산자

const temp = 1 === "1" ? "참일때" : "거짓일때";

// 아래 if문과 같은 뜻이다.

let temp2;

if (1 === "1") {
	temp2 = "참일때";
} else {
	temp2 = "거짓일때";
}

조건식 거짓으로 취급하는 값

1) false
2) undefined
3) null
4) 0
5) NaN
6) the empty string ("")

ex) if 안의 조건문이 "참"이 아니기 때문에 else 문 실행

조건문에서 사용할 수 있는 비교 연산자

1) ===, !== : 한 값이 다른 값과 같거나 다른지 판단 한다.
2) <, > : 한 값이 다른 값보다 작은지 큰지 판단 한다.
3) <=, >= : 한 값이 다른 값보다 작거나 같은지, 크거나 같은지 판단 한다.

var score = 96; if (score >= 90){ console.log("점수 : A"); // 해당문 실행 
}else if (score >= 80){ console.log("점수 : B"); 
}else if (score >= 70){ console.log("점수 : C"); 
}else if (score >= 60){ console.log("점수 : D"); 
}else { console.log("점수 : F"); }

조건문 : switch

조건문 연습문제

반복문 : for 문

for문 실행순서

문법

for (초기문; 조건문; 증감문) {
    조건문의 결과가 참인 경우 반복적으로 실행하고자 하는 명령문;
}

ex)

for (var i = 1; i < 10; i++) { console.log(i + "번째 실행"); }

마지막에 num++;를 쓰지 않는다면 증감을 하지않아 무한루프에 빠지게 된다.

  • 자바스크립트 문자열에서 사용되는 역따옴표(백틱)는 변수나 표현식을 ${}로 넣어주어 사용합니다.
    ${ }
    사이에 변수나 연산 등을 삽입할 수 있습니다.
    엔터도 구분합니다.

(기존의 따옴표 방식에서는, + 연산자로 여러번 이어 붙여야 했다.

var name = `사과`
var price = 100
var num = 5;

console.log(name + "의 구매가는 " + (price * num) + "원 입니다");

)

반복문 for의 확장

  • for .. in :

ex)
var coworkers = { 'a' : 'sera', 'b' : 'egoing'};
for(var key in coworkers) {
console.log(key);} // a, b 출력

즉, coworkers안에 있는 key들을 하나하나 출력한다는 뜻이다.

var coworkers = { 'a' : 'sera', 'b' : 'egoing'};
for(var key in coworkers) {
console.log(coworkers[key]);} //sera, egoing 출력

for .. of 예제

반복문 : while 문

  • 주어진 어떤 조건문이 참이면 특정 실행문, 명령문을 반복 수행 한다.
  • while 문 내부에 표현식의 결과를 변경하는 실행문이 존재하지 않을 경우 무한루프에 빠질 수 있다.
    혹시라도 무한 루프에 빠지게 되면 시스템에 엄청난 영향을 줄 수 있으니 조심 하자.

문법

while (조건문) { 
    조건문의 결과가 참인 경우 반복적으로 실행하고자 하는 명령문; 
}

ex)

var i = 1; 

while (i < 10) { // 변수 i가 10보다 작을 때만 while 문을 반복함. 
     console.log(i + "번째 실행"); i++; }

반복문 제어 ( break, continue, label)

break는 if문에 해당되는게 나오면 중단,
continue는 그것만 빼고 진행

1 : j=0만 실행되고 break된다.
2 : i=0, j=0 일때만 실행되고 종료된다.

여러 개의 중첩 반복문을 한 번에 빠져나와야 하는 경우가 종종 생기곤 합니다.

i와 j를 반복하면서 프롬프트 창에 (0,0)부터 (2,2)까지를 구성하는 좌표 (i, j)를 입력하게 해주는 예시를 살펴봅시다.

for (let i = 0; i < 3; i++) {

  for (let j = 0; j < 3; j++) {

    let input = prompt(`(${i},${j})의 값`, '');

    // 여기서 멈춰서 아래쪽의 `완료!`가 출력되게 하려면 어떻게 해야 할까요?
  }
}

alert('완료!');

사용자가 Cancel 버튼을 눌렀을 때 반복문을 중단시킬 방법이 필요합니다.

input 아래에 평범한 break 지시자를 사용하면 안쪽에 있는 반복문만 빠져나올 수 있습니다.
이것만으론 충분하지 않습니다(중첩 반복문을 포함한 반복문 두 개 모두를 빠져나와야 하기 때문이죠). 이럴 때 레이블을 사용할 수 있습니다.

레이블(label) 은 반복문 앞에 콜론과 함께 쓰이는 식별자입니다.

labelName: for (...) {
  ...
}
반복문 안에서 ```break <labelName>```문을 사용하면 레이블에 해당하는 반복문을 빠져나올 수 있습니다.

outer: for (let i = 0; i < 3; i++) {

  for (let j = 0; j < 3; j++) {

    let input = prompt(`(${i},${j})의 값`, '');

    // 사용자가 아무것도 입력하지 않거나 Cancel 버튼을 누르면 두 반복문 모두를 빠져나옵니다.
    if (!input) break outer; // (*)

    // 입력받은 값을 가지고 무언가를 함
  }
}
alert('완료!');

위 예시에서 break outer는 outer라는 레이블이 붙은 반복문을 찾고, 해당 반복문을 빠져나오게 해줍니다.

따라서 제어 흐름이 (*)에서 alert('완료!')로 바로 바뀝니다.

반복문 연습문제

consol.log(i); = 2,4,6,8,10

%를 쓴 이유 : 짝수라는 조건이 있어야 하므로 %(나머지 구하는 연산자)가 0일때 실행하도록 한 것.

참고: https://goddaehee.tistory.com/

profile
취미로 하는 공부기록장

0개의 댓글