조건문을 사용하면 특정 조건이 만족했을 때 특정 코드를 실행 할 수 있는 구문
if
(...)문은 괄호 안에 들어가는 조건을 평가, 그 결과가true
이면 해당 코드 블럭이 실행
-> 괄호 안의 표현식을 평가 -> 불린 값으로 변환
- 숫자
0
, 빈 문자열""
,null
,undefined
,Nan
모두 불린형으로 변환 시false
const number = 1;
if(a + 1 === 2) {
console.log("정답입니다."); // ()안의 조건이 true이니 정답입니다가 출력이 된다.
};
그럼 a 의 값을 바꾼다면?
const number = 9;
if(a + 1 === 2) {
console.log("정답입니다."); // ()안의 조건이 false이니 아무것도 출력이 되지 않는다.
};
if
(...)문의 괄호 안에 들어가는 조건을 평가하고 그 결과가false
일 때 실행되게 끔 하는 코드 블럭
const number = 9;
if(a + 1 === 2) {
console.log("정답입니다.");
} else {
console.log("오답입니다/"); // ()안의 조건이 false이니 else문의 코드 블럭이 실행된다. 오답입니다가 출력이 된다.
};
특정 조건이 만족할 때와 만족하지 않을 때 서로 다른 코드를 실행해야 된다면 if-else
문을 사용 할 수 있다.
여러 조건에 따라 다른 코드 블럭을 실행해야할 때 사용한다.
const rank = 60;
if (rank >= 90) {
console.log("A+");
} else if (rank >= 65) {
console.log("B+");
} else {
console.log("F"); // 위 두개의 조건이 모두 충족이 되지 않았기에 F가 출력
}
위의 조건식을 보면 지금은 위의 두 조건이 충족이 되지 않아 F가 출력 되었지만,
값이 올라가면 B+, A+이 출력 될 수 있다.
그렇기에 if-else if
문은 여러 조건이 있을 때 사용하면 유용하다.
switch/case 문은 특정 값이 무엇이냐에 따라 다른 코드 블럭을 실핼 할 때 사용한다.
const device = 'iphone13';
switch (device) {
case 'iphone13':
console.log('아이폰 15로 바꾸고 싶어요');
breack;
case 'iphone14' :
console.log('아이폰 15로 바꾸고 싶어요');
breack;
case 'iphone15' :
console.log('아이폰 15 pro로 바꾸고 싶어요');
break;
default:
console.log('아이폰 15가 최고입니다.');
}
device 값을 'iphone13', 'iphone14', 'iphone15' 에 따라 다른 코드 블럭이 실행이 된다.
가장 밑의 default는 case로 준비하지 않는 값일 경우 실행 되는 코드 블럭이다.
특정 작업을 반복적으로 할 때 사용할 수 있는 구문
가장 기본적인 반복문 우리가 정한 조건이 만족 -> 반복
for( let i = 0; i < 10; i ++) {
console.log(i); // 0 부터 9 까지 출력
}
특정 조건이 참 -> 반복, 언젠간 false가 되도록 해야함
let i = 0;
while (i < 10) {
console.log(i);
i++;
}
조건문 내부에서 변화를 직접 주어야 성립
배열을 위한 반복문
let numbers = [1, 2, 3, 4, 5, 6];
for (let number of numbers ) {
console.log(number); // 1 부터 6 까지 출력
}
객체를 위한 반복문
const user = {
name : "Hyun",
height : "200",
age : 27,
};
console.log(Object.entries( user ));
console.log(Object.keys( user ));
console.log(Object.values( user ));
Object.entries
- [[키, 값], [키, 값]]
형태의 배열로 변환Object.keys
- [키, 키, 키]
형태의 배열로 변환Object.values
- [값, 값, 값]
형태의 배열로 변환위의 코드를 for ... in
으로 전환해보자
const user = {
name : "Hyun",
height : "200",
age : 27,
};
for (let key in user) {
console.log(key, user[key]);
};
둘 중 상황에 맞게끔 사용하면 될 듯 하다
const score = 1;
if (score < 0){
console.log("음수입니다.");
} else if (score > 0) {
console.log("양수입니다.")
} else {
console.log("0입니다.")
}
const score = 100;
let grade = ''
if (score >=90 && score <= 100) {
grade = 'A';
} else if (score >= 80 && score <= 89) {
grade = 'B';
} else if (score >= 70 && score <= 79) {
grade = "C";
} else if (score >= 60 && score <= 69) {
grade = "D";
} else if (score >= 0 && score <= 59) {
grade = "F";
} else {
cosnole.log("점수를 다시 입력해주세요");
}
지원자의 스택이 ["HTML", "CSS", "JavaScript", "React"]
가 있다let userSkills = ["HTML", "CSS", "JavaScript", "React"];
if (userSkills.includes("JavaScript") && userSkills.includes("React")) {
console.log("합격");
} else if (userSkills.includes("JavaScript") || userSkills.includes("React")) {
console.log("예비");
} else {
cosnole.log("탈락");
}
numbers
가 매개변수로 주어집니다. numbers
의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.function solution(numbers) {
var answer = 0;
var sum = 0;
for (let i = 0; i < numbers.length; i++) {
sum += numbers[i];
answer = sum / numbers.length;
}
return answer;
}
function solution(n) {
var answer = 0;
for (var i = 0; i <= n; i += 2) {
answer += i;
}
return answer;
}
범위가 작은 것 부터 하나씩 해결 하기 조건에 대한 생각을 천천히 해보면 될 듯 하다
아직은 익숙하지 않아서 그런 느낌인데 하다 보면 많이 늘 것이다.