1. 조건문
ⅰ. 조건문이란?
- 특정 조건을 만족했을 때만 해당 코드를 실행할 수 있게 하는 구문
- 어떤 조건이 참인지 거짓인지에 따라 실행 여부를 결정하는 구문
ⅱ. if
- if (조건) {
조건을 만족할 때 실행할 코드(명령문)
}
- 조건을 소괄호 ()로 둘러싼 형태를 가지고, 조건문에 의사결정을 할 수 있는 조건문을 작성하면 됨
-> 조건문의 결과값은 항상 boolean값으로 리턴해야 하며, 결과값이 true일 경우에만 명령문을 실행함
const aPrice = 40000
if (aPrice < 50000) { // a의 가격이 50000원보다 작으므로 true를 리턴하여 해당 코드가 실행
console.log('이 상품을 사겠습니다.') // if문의 body코드
}
const bPrice = 50000
if (bPrice < 50000) { // b의 가격이 50000보다 작지않으므로 false를 리턴하여 해당 코드가 실행되지 않음
console.log('이 상품을 사지 않겠습니다.')
}
ⅲ. else, else if
- if (조건) {
조건을 만족할 때 실행할 코드(명령문)
} else {
조건을 만족하지 않을때 실행할 코드
}
- if 구문의 조건을 만족하지 않았을 때 실행하고 싶은 코드를 else 구문과 함께 작성함
const aPrice = 50000
if (aPrice < 40000) {
console.log('이 상품을 구매하겠습니다.')
} else { // a의 가격이 40000원보다 작지 않으므로 false를 리턴하여 해당 코드가 실행됨
console.log('이 상품을 구매하지 않겠습니다.')
}
- if (조건) {
조건을 만족할 때 실행할 코드(명령문)
} else if (조건) {
else if의 조건을 만족할 때 실행할 코드
} else {
조건을 만족하지 않을때 실행할 코드
}
- else if 구문을 활용하면 보다 더 많은 조건을 판단하고 코드를 실행할 수 있음
- else if를 사용할 땐 바로 옆에 소괄호() 안에 조건을 작성해야 함
const aPrice = 50000
if (aPrice < 40000) { // false
console.log('이 상품을 사겠습니다.')
} else if (aPrice <= 50000) { // a의 가격이 50000원보다 작거나 같지 않으므로 true를
console.log('고민을 해보겠습니다...') // 리턴하여 else if의 body 구문을 반환함
} else { // 모든 조건을 만족하지 않을때 실행
console.log('이 상품을 사지 않겠습니다.')
}
// 중간에 한번이라도 true를 리턴하면 해당 코드를 실행하고
// 더이상 아래의 코드는 실행하지 않음
// Q. 거리를 의미하는 변수를 선언하고 원하는 값(단위 -> km)을 할당
// 2km 미만이면 '걸어가자'
// 2km 이상이고 5km 미만이면 '택시를 타자'를
// 그 외는 '기차를 타자'를 출력
const distance = 3
if(distance < 2) {
console.log('걸어가자')
} else if(distance >= 2 && distance < 5) { // &&-> 비교하는 값이 모두 true일 때 true를 반환
console.log('택시를 타자') // true를 반환하여 해당 구문이 실행
} else {
console.log('기차를 타자')
}
들여 쓰기
- javascript에서 들여 쓰기를 할 때 보통 탭(Tab) 키를 사용함
- if 구문의 body(중괄호 안쪽) 코드를 작성할 때 들여 쓰기를 사용함
- 들여 쓰기는 반드시 하지 않아도 상관없지만 코드의 가독성을 높이기 위해서 사용함
2. 반복문
ⅰ. 반복문이란?
- 프로그램 내에서 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 실행문
- 반복문을 활용하면 특정코드가 반복해서 실행하는 것이기 때문에 반복 실행하기 위한 코드를 덜 작성해도 됨
-> 효율적인 코딩이 가능해짐
- 조건을 설정해서 원하는 만큼만 반복할 수 있도록 함
- 프로그램이 처리하는 대부분의 코드는 반복적인 형태가 많으므로, 가장 많이 사용되는 실행문 중 하나
ⅱ.
- while(조건) {
조건을 만족할 때 실행할 코드
}
- 소괄호 () 안에 조건은 결과값을 true, false를 리턴하고, true를 만족하는 경우에만 중괄호{} 안에 문장들이 실행됨
- 조건이 false를 리턴하면 더 이상 반복해서 실행하지 않음
let temperature = 20
while (temperature < 25) { // 25미만이 되면 false를 리턴받아 해당 구문을 중단시킴
console.log(`${temperature}도 정도면 적당한 온도입니다.`)
temperature++ // 증감연산자를 활용하여 온도를 변화시킴
}
- 반복문의 조건에 포함된 변수의 값을 계속 변화시켜 줘서 반복문이 끝날 수 있도록 해야 함
-> 반복문의 조건이 true를 계속해서 리턴한다면 무한루프에 빠져서 프로그램이 끝나지 않음
무한루프로 인해 프로그램의 실행이 끝나지 않는다면 ctrl + c를 눌러서 중단시킴
ⅲ. for
- for (begin(초기값); condition(조건식); step(어떤 간격으로)) {
조건을 만족할 때 실행할 코드
}
- while문보다 좀 더 명시적으로 반복문의 조건을 표현할 수 있음
- begin -> 변수를 선언하고 해당 변수에 데이터를 할당하는 부분
- condidtion -> 조건을 적음
- step -> 앞서 선언했던 변수에 증감연산자 등을 활용해 값을 변화시키고 조건이 false를 리턴해서 반복문이 끝나게 해주는 역할을 함
- ;(세미콜론) -> 해당 구문이 끝남을 나타냄
for (let temperature = 20; temperature < 25; temperature++) {
console.log(`${temperature}도 정도면 적당한 온도입니다.`)
}
// begin -> temperature 변수 선언
// condition -> temperature가 25보다 작은지 연산, 결과값이 true면 계속 실행, false면 종료
// 중괄호 안에 코드가 실행됨
// step -> temperature에 1을 더해서 재할당 후 condition과정부터 다시 반복
3. 반복문과 조건문
ⅰ. 반복문과 조건문
- 프로그램은 반복분과 조건문의 집합이라고 할 수 있음
- 입력된 데이터에 대해 조건문을 활용해 수많은 조건으로 분기하고 반복문을 활용해 반복해서 처리하는 게 프로그램이 주로 하는 일
// 1-20까지의 숫자중 홀수인 경우 -> '숫자 ..은 홀수입니다.'
// 짝수인 경우 -> '숫자 ..은 짝수입니다.'를 출력
for (let number = 1 ; number <=20; number++) {
if(number % 2 === 0) { // % -> 나머지 연산
console.log(`숫자 ${number}은 짝수입니다.`)
} else {
console.log(`숫자 ${number}은 홀수 입니다.`)
}
}
4. 함수
ⅰ. 함수란?
const aPrice = 1000
const bPrice = 2000
// 두 상품가격의 합과 평균을 구해서 출력
const sum1 = aPrice + bPrice
const avg1 = sum1 / 2
console.log(`두 상품의 합은 ${sum1}이고, 평균은 ${avg1}입니다.`)
const cPrice = 3000
const dPrcie = 4000
// 두 상품가격의 합과 평균을 구해서 출력하려면 위와 동일한 코드를 작성
const sum2 = cPrice + dPrice
const avg2 = sum2 / 2
console.log(`두 상품의 합은 ${sum2}이고, 평균은 ${avg2}입니다.`)
- 한두 번 작성하는 것은 괜찮지만 수십, 수백 번씩 작성하는 것은 비효율적이기 때문에 특정 작업을 수행해야 한다면 그 코드 자체를 어디에 만들어서 저장해 놓고 사용하기 위한 것이 바로 함수임
- 많은 양의 코드를 연관 있는 것끼리 정리해서 함수로 만들면 코드를 보기 좋게 정리할 수 있고 반복 사용하는 코드를 함수로 만들어 필요할 때마다 호출할 수 있음
-> 중복 코드를 줄이고, 코드의 재사용이라는 장점이 있음
ⅱ. 함수의 선언과 호출
- 함수의 선언
- 변수를 선언하고 해당 변수에 값을 할당했던 것처럼, 함수도 선언을 하고 해당 함수가 실행할 코드의 집합을 만들어 저장
- function 함수명(매개변수 목록) {
이 함수에서 실행할 코드
return 반환값
}
- 함수명 -> 변수가 데이터를 대표하는 이름처럼 함수가 하는 일을 대표하는 이름으로 작성
- 매개변수(parameter) -> 해당 함수의 바디에 있는 코드에서 사용할 수 있는 일종의 변수,
함수 호출 시 전달하게 되는 함수를 실행하기 위해서 필요한 일종의 input
- {} 중괄호 안 -> 이 함수가 해야 할 일들을 코드로 작성 후, 반환해야 할 값을 명시함
// 함수 선언
funtion calculateAvg(price1, price2){
const sum = price1 + price2 // 매개변수를 변수처럼 활용함
console.log(`두 상품의 합계는 ${sum}입니다.`)
const avg = sum / 2
return avg // 평균가격을 반환
}
- 함수 호출
- 함수를 선언하고 호출하지 않으면 아무 일도 일어나지 않고 실제로 함수를 사용하기 위해서는 호출을 해야 함
- const 변수명 = 선언한 함수명(매개변수 목록)
- 함수는 어떠한 값을 반환하는데 이를 대입 연산자를 활용해서 어떤 변수에 함수가 반환한 값을 할당하면 됨
const aPrice = 1000
const bPrice = 2000
// 함수 호출
const avg1 = calculateAvg(aPrice, bPrice)
// 함수의 매개변수로 aPrice, bPrice를 전달함
// -> aPrcie와 bPrcie에 할당되어 있는 데이터가
// 실제함수 안에 있는 price1, price2에 다시 할당되는 것과 같음
console.log(`두 상품의 평균은 ${avg1}입니다.`)
const cPrice = 3000
const dPrice = 4000
// 함수 호출
const avg2 = calculateAvg(cPrice, dPrice)
console.log(`두 상품의 평균은 ${avg2}입니다.`)
- 위에 함수 호출 시 코드의 흐름
- 함수 calculateAvg를 호출하면서 변수 aPrice, bPrice를 매개변수로 전달함
- 함수 calculateAvg의 바디 코드가 실행됨
위에서 전달한 매개변수의 값이 함수를 선언할 때 썼던 매개변수명인 price1, price2에 할당되었다고 보면 됨
- 함수의 바디 코드가 변수 avg를 리턴하고 있고, 이것이 변수 avg1에 할당됨
// Q. 세 개의 물건가격을 매개변수로 전달받아 평균값을 리턴하는 함수를 정의
// 함수를 호출해서 평균값을 출력
funtion calculateAvg(price1, price2, price3) {
const avg = (price1 + price2 + price3) / 3
return avg
}
const aPrice = 100
const bPrice = 200
const cPrice = 300
const avg1 = calculateAvg(aPrice, bPrice, cPrice)
cosole.log(`평균가격: ${avg1}`)
매개변수의 개수
- 매개변수의 개수는 원하는 만큼 늘어날 수 있지만 매개 변수가 너무 많이 늘어나면 코딩을 하면서 인지하기 힘들기 때문에 한계를 두고 인지할 수 있을 만큼만 사용하는 게 좋음