카테고리 없음

제26차_사업개발캠프 블로그(웹 개발 기초와 지식 9~14강)

digital520 2024. 2. 9. 18:08

 

더보기

양성훈강사 BD01 라이브세션

 

자바스크립트 코드 작성해보기(기초)

직접 자바스크립트 코드를 작성하며 원리를 이해합니다.

 

📌 웹 개발 언어인 자바스크립트의 기본 문법을 활용해 다양한 문제를 해결해 볼 수 있습니다.

 

  • Tip. 반환(return)과 출력(print; console.log 등)의 차이를 알아 봅시다.
반환과 출력은 프로그래밍에서 서로 다른 개념입니다.

1. 반환(Return):
    - 목적: 함수가 어떤 값을 계산하고 그 값을 호출한 곳으로 전달하기 위해 사용됩니다.
    - 사용: 함수 내에서 `return` 키워드를 사용하여 값을 반환합니다.
    - 예시:
        function addNumbers(a, b) {
            let sum = a + b;
            return sum; // 이 값이 함수 호출자에게 반환됨
        }
        
        let result = addNumbers(3, 4); // result에는 7이 할당(저장)됨
        
2. 출력(Print):
    - 목적: 주로 사용자에게 정보를 표시하거나, 프로그램의 실행 과정을 디버깅하기 위해 사용됩니다.
    - 사용: 주로 `console.log()`를 사용하여 콘솔에 출력하거나, HTML과 같은 문서에 직접 내용을 표시합니다.
    - 예시:
        let message = "안녕하세요!";
        console.log(message); // 개발자 도구의 콘솔에 "안녕하세요!" 출력        

- 간단히 말하면, 반환은 "함수가 값을 주는 것"이며,
- 출력은 주로 사용자 또는 개발자에게 "정보를 표시하는 것"입니다.
  * 반환된 값은 변수에 할당하거나 다른 계산에 사용될 수 있습니다.
  * 반면 출력은 주로 개발자가 프로그램 실행 과정을 이해하거나, 사용자에게 정보를 전달하기 위해 사용됩니다.

문제 1) 반지름을 매개 변수로 받아서, 원의 넓이와 둘레를 구하는 함수를 만들어주세요.

주어진 코드는 반지름이 3인 원의 넓이와 둘레를 계산합니다. 

- 원의 넓이: `circleArea(3)` 함수는 원의 넓이를 계산하므로, 이 함수의 결과는 3.14 * 3^2 = 28.26입니다.
- 원의 둘레: `circleCircumference(3)` 함수는 원의 둘레를 계산하므로, 이 함수의 결과는 2 * 3.14 \times 3 = 18.84입니다.

따라서, 이 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

- 원의 넓이: 28.26
- 원의 둘레: 18.84

//원주율 함수 선언
function circleArea(radius) {
    // 원주율 선언
    let PI = 3.14;

    // 원의 넓이 계산
    let area = PI * radius * radius;

    // 결과 반환
    return area
	}

//원 둘레 함수 선언
function circleCircumference(radius) {
    // 원주율 선언
    let PI = 3.14;

    // 원의 둘레 계산
    let circumference = 2 * PI * radius;

    // 결과 반환
    return circumference
	}

// 예시로 반지름이 3인 원의 넓이와 둘레를 계산해봅니다.
let resultArea = circleArea(3);
let resultCircumference = circleCircumference(3);

// 경고창으로 결과를 출력해 봅니다.
alert("원의 넓이: " + resultArea);
alert("원의 둘레: " + resultCircumference);

// 또는 개발자 도구(브라우저에서 F12 또는 마우스 오른쪽 클릭 후 '검사' -> 'Console' 탭)
console.log("원의 넓이: " + resultArea);
console.log("원의 둘레: " + resultCircumference);

 

정답 코드

function circleArea(radius) {
    // 원주율 선언
    let PI = 3.14;

    // 원의 넓이 계산
    let area = PI * radius * radius;

    // 결과 반환
    return area
	}

function circleCircumference(radius) {
    // 원주율 선언
    let PI = 3.14;

    // 원의 둘레 계산
    let circumference = 2 * PI * radius;

    // 결과 반환
    return circumference
	}

// 예시로 반지름이 3인 원의 넓이와 둘레를 계산해봅니다.
let resultArea = circleArea(3);
let resultCircumference = circleCircumference(3);

// 경고창으로 결과를 출력해 봅니다.
alert("원의 넓이: " + resultArea);
alert("원의 둘레: " + resultCircumference);

// 또는 개발자 도구(브라우저에서 F12 또는 마우스 오른쪽 클릭 후 '검사' -> 'Console' 탭)
console.log("원의 넓이: " + resultArea);
console.log("원의 둘레: " + resultCircumference);

 


문제 2) if문과 %를 이용해서 생년월일을 입력하면 나의 띠를 알려주는 프로그램을 만들어주세요.

주어진 코드는 1990년생의 띠를 계산하고, 그 결과를 경고창과 콘솔에 출력합니다. 
코드 결과 값
입력값: 1990년

출력값:

경고창: "당신의 띠는 말띠입니다."
콘솔: "당신의 띠는 말띠입니다."

function findZodiacSign(year) {
    // 띠 계산
    let zodiacSign = year % 12;
		// 띠 이름을 담을 변수 선언
    let zodiacName;

    // 띠 이름 결정
    if (zodiacSign == 0) {
        zodiacName = "원숭이띠";
    } else if (zodiacSign == 1) {
        zodiacName = "닭띠";
    } else if (zodiacSign == 2) {
        zodiacName = "개띠";
    } else if (zodiacSign == 3) {
        zodiacName = "돼지띠";
    } else if (zodiacSign == 4) {
        zodiacName = "쥐띠";
    } else if (zodiacSign == 5) {
        zodiacName = "소띠";
    } else if (zodiacSign == 6) {
        zodiacName = "호랑이띠";
    } else if (zodiacSign == 7) {
        zodiacName = "토끼띠";
    } else if (zodiacSign == 8) {
        zodiacName = "용띠";
    } else if (zodiacSign == 9) {
        zodiacName = "뱀띠";
    } else if (zodiacSign == 10) {
        zodiacName = "말띠";
    } else if (zodiacSign == 11) {
        zodiacName = "양띠";
    }

    // 결과 반환
    return zodiacName;
}

// 예시로 1990년생의 띠를 계산해봅니다.
let zodiac = findZodiacSign(1990);

// 경고창과 콘솔에 결과를 출력해 봅니다.
alert("당신의 띠는 " + zodiac + "입니다.")
console.log("당신의 띠는 " + zodiac + "입니다.");

정답 코드

function findZodiacSign(year) {
    // 띠 계산
    let zodiacSign = year % 12;
		// 띠 이름을 담을 변수 선언
    let zodiacName;

    // 띠 이름 결정
    if (zodiacSign == 0) {
        zodiacName = "원숭이띠";
    } else if (zodiacSign == 1) {
        zodiacName = "닭띠";
    } else if (zodiacSign == 2) {
        zodiacName = "개띠";
    } else if (zodiacSign == 3) {
        zodiacName = "돼지띠";
    } else if (zodiacSign == 4) {
        zodiacName = "쥐띠";
    } else if (zodiacSign == 5) {
        zodiacName = "소띠";
    } else if (zodiacSign == 6) {
        zodiacName = "호랑이띠";
    } else if (zodiacSign == 7) {
        zodiacName = "토끼띠";
    } else if (zodiacSign == 8) {
        zodiacName = "용띠";
    } else if (zodiacSign == 9) {
        zodiacName = "뱀띠";
    } else if (zodiacSign == 10) {
        zodiacName = "말띠";
    } else if (zodiacSign == 11) {
        zodiacName = "양띠";
    }

    // 결과 반환
    return zodiacName;
}

// 예시로 1990년생의 띠를 계산해봅니다.
let zodiac = findZodiacSign(1990);

// 경고창과 콘솔에 결과를 출력해 봅니다.
alert("당신의 띠는 " + zodiac + "입니다.")
console.log("당신의 띠는 " + zodiac + "입니다.");

문제 3) 1 ~ 100까지 수 중에서 짝수의 합을 구하는 코드를 작성해주세요.

주어진 코드는 1부터 100까지의 수 중에서 짝수의 합을 계산하고, 그 결과를 경고창과 콘솔에 출력합니다
코드 결과 값
출력값:

경고창: "1 ~ 100까지 수 중에서 짝수의 합: 2550"
콘솔: "1 ~ 100까지 수 중에서 짝수의 합: 2550"

function sumEvenNumbers() {
		// 처음 합(sum)은 0임을 선언
    let sum = 0;
    
    for(let i=1; i<=100; i++) {
        if(i%2 == 0) {
            sum = sum + i;
        }
    }
		// 결과 반환
    return sum;
}

let sum = sumEvenNumbers();

alert("1 ~100까지 수 중에서 짝수의 합: " + sum);
console.log("1 ~100까지 수 중에서 짝수의 합: " + sum);

정답 코드

function sumEvenNumbers() {
		// 처음 합(sum)은 0임을 선언
    let sum = 0;
    
    for(let i=1; i<=100; i++) {
        if(i%2 == 0) {
            sum = sum + i;
        }
    }
		// 결과 반환
    return sum;
}

let sum = sumEvenNumbers();

alert("1 ~100까지 수 중에서 짝수의 합: " + sum);
console.log("1 ~100까지 수 중에서 짝수의 합: " + sum);

문제 4) for문과 if문을 이용해서 입력한 년도에 해당하는 띠를 찾는 프로그램을 만들어주세요.

주어진 코드는 1990년생의 띠를 계산하고, 그 결과를 경고창과 콘솔에 출력합니다. 
코드 결과 값
입력값: 1990년

출력값:

경고창: "당신의 띠는 말띠입니다."
콘솔: "당신의 띠는 말띠입니다."


function findZodiacSign(year) {
    // 띠 이름 저장
    let zodiacSigns = ["원숭이띠", "닭띠", "개띠", "돼지띠", "쥐띠", "소띠", "호랑이띠", "토끼띠", "용띠", "뱀띠", "말띠", "양띠"];
		// 띠 이름을 담을 변수 선언
    let zodiacName;

    // 띠 찾기
    for(let i = 0; i < zodiacSigns.length; i++) {
        if(year % 12 == i) {
            zodiacName = zodiacSigns[i];
        }
	}

	// 결과 반환
	return zodiacName;
}

// 예시로 1990년생의 띠를 계산해봅니다.
let zodiac = findZodiacSign(1990);

// 경고창과 콘솔에 결과를 출력해 봅니다.
alert("당신의 띠는 " + zodiac + "입니다.");
console.log("당신의 띠는 " + zodiac + "입니다.");

정답 코드

function findZodiacSign(year) {
    // 띠 이름 저장
    let zodiacSigns = ["원숭이띠", "닭띠", "개띠", "돼지띠", "쥐띠", "소띠", "호랑이띠", "토끼띠", "용띠", "뱀띠", "말띠", "양띠"];
		// 띠 이름을 담을 변수 선언
    let zodiacName;

    // 띠 찾기
    for(let i = 0; i < zodiacSigns.length; i++) {
        if(year % 12 == i) {
            zodiacName = zodiacSigns[i];
        }
	}

	// 결과 반환
	return zodiacName;
}

// 예시로 1990년생의 띠를 계산해봅니다.
let zodiac = findZodiacSign(1990);

// 경고창과 콘솔에 결과를 출력해 봅니다.
alert("당신의 띠는 " + zodiac + "입니다.");
console.log("당신의 띠는 " + zodiac + "입니다.");

과제 제출 방법

이번 웹 개발 학습의 과제는 본인의 컴퓨터에서 작성한 mission.html 파일을 복사하여 과제 제출 페이지에 업로드해 주시거나, 본인이 작성한 코드를 복사하신 후에 과제 제출 페이지를 캡처한 아래 사진의 빨간 네모 칸의 코드 블록 내부 위치에 붙여넣기 해주세요!

셀프 채점 기준

  • [ ] 함수에 대해 이해하고 코드로 구현할 수 있는지
  • [ ] if문에 대해 이해하고 코드로 구현할 수 있는지
  • [ ] for문에 대해 이해하고 코드로 구현할 수 있는지

[선택과제]자바스크립트 코드 작성해보기(중)

직접 자바스크립트 코드를 작성하며 원리를 이해합니다.

 

📌 함수, if문, for문, 배열에 대한 개념을 숙지하셨다면 더 어려운 문제도 충분히 해결할 수 있습니다.

 

난이도 (⭐️⭐️) ⇒ n에 들어 있는 숫자가 array(배열) 안에 몇 개가 있는지 찾는 함수를 만들어주세요

//아래는 참고용 코드입니다.
array = [1,2,3,3,4,5,6]
n = 3

function solution(array, n) {
	let answer = 0;
    
  for(let i = 0; i < array.length; i++){
	  if (array[i] == n){
	    answer += 1; // answer = answer + 1 와 같은 표현
	    }
   }
   return answer;
}

alert("중복된 숫자의 개수는 " + solution(array, n) + "개 입니다.")
console.log("중복된 숫자의 개수는 " + solution(array, n) + "개 입니다.")

 

정답 코드

//아래는 참고용 코드입니다.
array = [1,2,3,3,4,5,6]
n = 3

function solution(array, n) {
	let answer = 0;
    
  for(let i = 0; i < array.length; i++){
	  if (array[i] == n){
	    answer += 1; // answer = answer + 1 와 같은 표현
	    }
   }
   return answer;
}

alert("중복된 숫자의 개수는 " + solution(array, n) + "개 입니다.")
console.log("중복된 숫자의 개수는 " + solution(array, n) + "개 입니다.")

 

 

난이도 (⭐️⭐️⭐️) ⇒ 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 “absolutes”와 이 정수들의 부호를 차례대로 담은 불리언 배열 “signs”가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return(반환) 하도록 “solution 함수”를 완성해주세요

 

  • true = 양수(+) / false = 음수(-)
const absolutes = [6, 9, 11]; // 정수 배열
const signs = [true, false, true]; // absolutes 의 값인 정수들의 부호를 차례대로 담은 불리언(참 또는 거짓) 배열

// 6 => true, 9 => false, 11 => true

function solution(absolutes, signs) {

}

alert("총 합은 " + solution(absolutes, signs) + "입니다.")
console.log("총 합은 " + solution(absolutes, signs) + "입니다.")

정답 코드

function solution(absolutes, signs) {
  let answer = 0;

  for (let i = 0; i < absolutes.length; i++) {
    if (signs[i] === true) { // ==(비교 연산자)와 비슷하지만, 자료형(정수, 문자열, 불리언 등)까지 확인하는 ===(엄격한 비교 연산자)
      answer += absolutes[i]; // answer = answer + absolutes[i] 와 같은 표현
    } else {
      answer += (-1) * absolutes[i];
    }
  }
  return answer;

}

const absolutes = [6, 9, 11];
const signs = [true, false, true];

alert("총 합은 " + solution(absolutes, signs) + "입니다.")
console.log("총 합은 " + solution(absolutes, signs) + "입니다.")

https://tmdrnr96.tistory.com/27

 

[Javascript] ==와===의 차이

Javascript를 사용 중에 값을 비교해야 할 때가 있는데, 이때 비교연산자인 ==연산자와 ===연산자를 사용한다. 두 연산자 모두 비교한 피연산자 값이 일치하면 ture값을 반환하고 비교한 피연산자 값

tmdrnr96.tistory.com

 


 

과제 제출 방법

이번 웹 개발 학습의 과제는 본인의 컴퓨터에서 작성한 mission.html 파일을 복사하여 과제 제출 페이지에 업로드해 주시거나, 본인이 작성한 코드를 복사하신 후에 과제 제출 페이지를 캡처한 아래 사진의 빨간 네모 칸의 코드 블록 내부 위치에 붙여넣기 해주세요!

셀프 채점 기준

  • [ ] 코드로 구현할 수 있도록 문제를 해석 및 구조화 할 수 있는지
  • [ ] if문과 for문에 원리를 정확하게 이해하고 있는지
  • [ ] 배열의 인덱스에 대해 정확하게 이해하고 있는지

일일 클래스&학습 도서 리뷰

실습 과제

  1. 오늘 VOD 강의 및 학습 도서를 통해 배운 내용 중 핵심 개념을 블로그에 정리하여 작성해 주세요.

웹사이트 작동 원리 간략 요약

웹사이트 접속 과정:

  1. 사용자가 웹 브라우저에서 도메인 주소를 입력합니다. (예: www.google.com)
  2. 웹 브라우저는 DNS 서버에 도메인 주소를 전달합니다.
  3. DNS 서버는 해당 도메인의 IP 주소를 리턴합니다. (예: 172.217.14.238)
  4. 웹 브라우저는 IP 주소를 사용하여 서버에 접근합니다.
  5. 서버는 80번 포트 (HTTP)를 열고 HTML 코드를 전송합니다.
  6. 웹 브라우저는 HTML 코드를 읽어 웹사이트를 표시합니다.

핵심 개념:

  • 도메인: 웹사이트 주소 (예: www.google.com)
  • IP 주소: 서버의 고유 번호 (예: 172.217.14.238)
  • DNS 서버: 도메인 주소를 IP 주소로 변환하는 서버
  • 포트: 서버에서 특정 서비스를 제공하는 통로 (HTTP는 80번 포트 사용)
  • HTML 코드: 웹사이트의 구조와 내용을 정의하는 코드

참고:

  • 처음에는 이해하기 어려울 수 있지만, 학습을 진행하면서 점차 이해하게 될 것입니다.
  • 지금은 전체적인 흐름만 이해하고, 다음 챕터부터 차근차근 학습하는 것이 좋습니다.

추가 정보:

  • 서버: 웹사이트의 파일을 저장하고, 사용자 요청에 응답하는 컴퓨터
  • 클라이언트: 웹 브라우저가 실행되는 사용자 컴퓨터
  • HTTP: 웹에서 데이터를 전송하는 프로토콜
  • HTML: 웹 페이지의 구조를 정의하는 마크업 언어
  • CSS: 웹 페이지의 디자인을 정의하는 언어
  • JavaScript: 웹 페이지에 동적인 기능을 추가하는 프로그래밍 언어

웹사이트 작동 원리를 더 자세히 이해하고 싶다면 다음 링크를 참고하시기 바랍니다.


자바스크립트 코딩 기초: 변수, 상수, 함수

1. 변수와 상수

변수는 값을 저장하는 그릇과 같으며, 상수는 변하지 않는 값을 저장하는 변수입니다.

 

변수 선언:

  • var 키워드를 사용하여 변수를 선언합니다.
  • 변수 이름은 자유롭게 지을 수 있지만, 숫자로 시작해서는 안 됩니다.
  • 변수 이름은 영어, 한글, 숫자, _ 와 $ 기호를 사용할 수 있습니다.
  • 변수 선언 후에는 값을 할당해야 합니다.

예시:

var age = 29; // 'age'라는 변수에 29라는 값을 할당
var name = "Ceo"; // 'name'라는 변수에 "Ceo"라는 값을 할당

 

상수 선언:

  • const 키워드를 사용하여 상수를 선언합니다.
  • 상수 이름은 변수 이름과 같은 규칙을 따릅니다.
  • 상수 선언 후에는 값을 할당해야 합니다.
  • 상수는 한 번 할당된 후 값을 변경할 수 없습니다.

예시:

const PI = 3.14; // 'PI'라는 상수에 3.14라는 값을 할당
const MAX_SIZE = 100; // 'MAX_SIZE'라는 상수에 100이라는 값을 할당

2. 함수

함수는 특정 기능을 수행하는 코드 블록입니다.

 

함수 정의:

  • function 키워드를 사용하여 함수를 정의합니다.
  • 함수 이름은 자유롭게 지을 수 있지만, 숫자로 시작해서는 안 됩니다.
  • 함수 이름은 영어, 한글, 숫자, _ 와 $ 기호를 사용할 수 있습니다.
  • 함수는 매개변수를 가질 수 있습니다.
  • 함수는 값을 리턴할 수 있습니다.

예시:

function add(a, b) {
  return a + b; // 'a'와 'b'를 더하여 값을 리턴
}

function sayHello() {
  console.log("Hello, world!"); // "Hello, world!"라는 문구를 출력
}

 

함수 호출:

  • 함수 이름을 사용하여 함수를 호출합니다.
  • 함수 호출 시 매개변수를 전달할 수 있습니다.

예시:

const result = add(1, 2); // 'add' 함수를 호출하고 1과 2를 매개변수로 전달
console.log(result); // 3 출력

sayHello(); // 'sayHello' 함수를 호출

3. 실습

1. 변수와 상수

다음 코드를 실행하고 결과를 확인하십시오.

var age = 29;
console.log(age); // 29 출력

age = 30;
console.log(age); // 30 출력

const PI = 3.14;
console.log(PI); // 3.14 출력

PI = 3.15; // 오류 발생

 

3. BMI 계산

다음 코드를 실행하고 BMI를 계산하십시오.

function calculateBMI(weight, height) {
  return weight / (height * height);
}

const myBMI = calculateBMI(70, 1.77);
console.log(myBMI); // 22.74 출력

4. 추가 정보


이번 강의에서는 자바스크립트에서 중요한 역할을 하는 'if 조건문'에 대해 알아보겠습니다.

 

영화 예시:

영화에서 주인공이 "만약 프로그래밍을 배우면 웹사이트를 만들 수 있을 것이다"라고 말하는 장면을 상상해봅시다. 이 경우 "만약 프로그래밍을 배우면"이라는 조건이 성립되면 "웹사이트를 만들 수 있다"라는 결과가 나타납니다.

 

자바스크립트에서의 if 조건문:

자바스크립트에서도 조건과 조건 성립 시 실행되는 내용으로 구성된 '이 if조건문'을 사용합니다. 영어와 마찬가지로 조건이 만족되면 특정 코드를 실행하고, 만족되지 않으면 실행하지 않습니다.

 

코딩 예시:

if (조건) {
  실행할 코드;
}

 

위 코드에서 'if' 다음에 괄호 안에 조건을 작성하고, 조건이 만족될 때 실행할 코드를 괄호 아래에 들여쓰기하여 작성합니다.

 

다음 강의에서는 이프 조건문의 다양한 활용법과 예시를 통해 더욱 자세히 알아보겠습니다.

강의 내용:

  • 이프 조건문의 기본 구조
  • 비교 연산자
  • 논리 연산자
  • else if 및 else 문
  • 중첩 조건문
  • 실제 코딩 예시

추가 설명

  • 자바스크립트에서 'if' 문은 대소문자를 구분합니다. 따라서 'if'를 'If' 또는 'iF' 처럼 작성하면 오류가 발생합니다.
  • 조건은 논리값으로 평가됩니다. 논리값은 'true' 또는 'false'입니다.
  • 조건문은 여러 개의 문장을 실행할 수 있도록 코드 블록을 사용합니다. 코드 블록은 { } 로 표시됩니다.
  • 'else' 문은 조건이 만족되지 않을 때 실행할 코드를 지정합니다.
  • 'else if' 문은 여러 개의 조건을 차례대로 검사하고, 만족하는 첫 번째 조건에 해당하는 코드를 실행합니다.

조건문

개요

조건문은 특정 조건이 만족될 때만 코드를 실행하는 구조입니다. 이는 코딩에서 매우 중요한 개념이며, 다양한 상황에서 사용됩니다.

 

구조

if (조건) {
  // 조건이 참일 때 실행되는 코드
} else {
  // 조건이 거짓일 때 실행되는 코드
}

 

예시:

const x = 22;

if (x === 20) {
  console.log("x는 20입니다.");
} else {
  console.log("x는 20이 아닙니다.");
}

 

설명

  • x === 20: x 값이 20인지 비교합니다.
  • console.log("x는 20입니다."): 조건이 참일 때 실행되는 코드입니다.
  • console.log("x는 20이 아닙니다."): 조건이 거짓일 때 실행되는 코드입니다.

여러 조건

if (x > 10 && x < 30) {
  console.log("x는 10보다 크고 30보다 작습니다.");
} else {
  console.log("x는 10보다 크거나 30보다 크거나 같습니다.");
}

 

설명

  • x > 10 && x < 30: x 값이 10보다 크고 30보다 작은지 비교합니다.
  • &&: 두 조건 모두 참일 때만 전체 조건이 참이 됩니다.
  • ||: 두 조건 중 하나라도 참이면 전체 조건이 참이 됩니다.

주의 사항

  • 조건문은 반드시 중괄호 {}로 묶어야 합니다.
  • else는 선택 사항입니다.
  • 조건 비교에는 == (동일 연산자) 대신 === (엄격 동일 연산자)를 사용하는 것이 좋습니다.

코드 구조 및 작동 방식:

  1. if 조건문: 첫 번째 조건을 검사합니다.
  2. 조건이 참일 경우: 첫 번째 조건 블록 내 코드를 실행합니다.
  3. 조건이 거짓일 경우:
    • elif 조건문: 두 번째 조건을 검사합니다.
    • 조건이 참일 경우: 두 번째 조건 블록 내 코드를 실행합니다.
    • 조건이 거짓일 경우:
      • else 블록: 모든 조건이 거짓일 경우 실행되는 코드 블록입니다.

예시:

var x = 22;

if (x > 10) {
  console.log("x는 10보다 크다");
} else if (x == 10) {
  console.log("x는 10과 같다");
} else {
  console.log("x는 10보다 작다");
}

 

결과:

x는 10보다 크다

 

설명:

  • x는 22이므로 첫 번째 조건 (x > 10)이 참입니다.
  • 따라서 첫 번째 조건 블록 내 코드 (console.log("x는 10보다 크다"))가 실행됩니다.
  • 두 번째 조건 (x == 10)과 else 블록은 실행되지 않습니다.

추가 설명:

  • 여러 개의 elif 조건문을 사용하여 여러 조건을 검사할 수 있습니다.
  • else 블록은 마지막에 위치해야 합니다.
  • 조건 블록 내 코드는 들여쓰기를 사용하여 구분해야 합니다.

1. 변수 및 조건 설정

  • 변수 x에 22라는 값이 할당됩니다.
  • x를 5로 나눈 값이 20이라는 조건이 설정됩니다.

2. 조건문 실행

  • 첫 번째 조건문은 x가 20인지 확인합니다. 이 조건은 참입니다.
  • 두 번째 조건문은 x를 5로 나눈 값이 4인지 확인합니다. 이 조건도 참입니다.

3. 코드 실행

  • 오류 발생: 두 조건 모두 참이지만, if문은 하나만 실행될 수 있습니다. 따라서 코드 실행 순서에 오해가 발생할 수 있습니다.
  • 실제 실행 순서는 다음과 같습니다.
    • 첫 번째 조건문이 참이므로, if 블록 내 코드가 실행됩니다.
    • 두 번째 조건문은 실행되지 않습니다.

4. 코드 개선

  • if-else문 사용: 두 조건 모두 실행해야 하는 경우, if-else문을 사용해야 합니다.
  • 코드 블록 구분: 각 조건에 해당하는 코드 블록을 명확하게 구분해야 합니다.

개선된 코드 예시:

const x = 22;

if (x === 20) {
  // 첫 번째 조건에 해당하는 코드
} else if (x / 5 === 4) {
  // 두 번째 조건에 해당하는 코드
} else {
  // 두 조건 모두 충족하지 못하는 경우 실행되는 코드
}

 

주의 사항

  • 조건문을 사용할 때는 코드 실행 순서를 명확하게 이해해야 합니다.
  • 여러 조건을 처리해야 하는 경우, 적절한 조건문을 사용하여 코드를 명확하게 작성해야 합니다.

연습 문제

  1. 숫자가 짝수인지 홀수인지 판별하는 코드를 작성하세요.
  2. 사용자의 이름과 나이를 입력받아 조건에 따라 메시지를 출력하는 코드를 작성하세요.

참고자료


자바스크립트 연산자 심화: 나머지 연산자 (%) 활용

1. 나머지 연산자 (%) 기본 개념

나머지 연산자는 두 숫자를 나눴을 때 나머지를 구하는 연산자입니다. 예를 들어,

20 % 3 = 2
20 % 6 = 2
20 % 7 = 6

위 코드에서 20을 3, 6, 7로 나눴을 때 나머지는 각각 2, 2, 6입니다.

2. 짝수/홀수 판단

나머지 연산자를 사용하여 숫자가 짝수인지 홀수인지 판단할 수 있습니다.

const num = 19;

if (num % 2 === 0) {
  console.log("짝수입니다");
} else {
  console.log("홀수입니다");
}

위 코드에서 num을 2로 나눴을 때 나머지가 0이면 짝수, 0이 아니면 홀수라고 출력합니다.

3. 띠 계산

나머지 연산자를 사용하여 생년월일을 입력하면 띠를 계산하는 프로그램을 만들 수 있습니다.

const birthYear = 2000;

const zodiac = (birthYear % 12) + 1;

switch (zodiac) {
  case 1:
    console.log("쥐띠입니다");
    break;
  case 2:
    console.log("소띠입니다");
    break;
  // ... 생략 ...
  case 12:
    console.log("돼지띠입니다");
    break;
}

위 코드에서 birthYear을 12로 나눴을 때 나머지 값에 따라 띠를 출력합니다.

4. 조건문 활용

나머지 연산자와 조건문을 함께 사용하여 다양한 문제를 해결할 수 있습니다.

예시 1: 숫자가 3의 배수인지 판단

const num = 15;

if (num % 3 === 0) {
  console.log("3의 배수입니다");
} else {
  console.log("3의 배수가 아닙니다");
}

 

 

예시 2: 숫자가 3 또는 5의 배수인지 판단

const num = 10;

if (num % 3 === 0 || num % 5 === 0) {
  console.log("3 또는 5의 배수입니다");
} else {
  console.log("3 또는 5의 배수가 아닙니다");
}

5. 문제: 숫자 범위 판단

숫자를 입력받아 1~100, 101~200, 201~300 중 어느 범위에 속하는지 출력하는 프로그램을 작성해 보세요

const num = 150;

if (num >= 1 && num <= 100) {
  console.log("1~100 범위입니다");
} else if (num >= 101 && num <= 200) {
  console.log("101~200 범위입니다");
} else {
  console.log("201~300 범위입니다");
}

6. 나머지 연산자 활용 예시

  • 숫자의 자릿수 판단
  • 문자열 길이 계산
  • 배열 요소 순환
  • 게임 개발 (주사위 굴리기 등)

7. 마무리

나머지 연산자는 숫자와 함께 다양한 문제를 해결하는 데 활용할 수 있는 유용한 연산자입니다. 조건문과 함께 사용하면 더욱 복잡한 문제도 해결할 수 있습니다.

 

9. 연습 문제

  • 특정 숫자의 배수인 숫자들의 리스트를 출력하는 프로그램
  • 주어진 문자열에서 특정 문자가 등장하는 횟수를 세는 프로그램

10. 학습 자료

 

나머지 (%) - JavaScript | MDN

나머지 연산자(%)는 왼쪽 피연산자를 오른쪽 피연산자로 나눴을 때의 나머지를 구합니다. 부호는 항상 왼쪽 피연산자의 부호를 따릅니다.

developer.mozilla.org

 


 

1. 비교 연산자

이전 강의에서 다룬 = 연산자는 오른쪽의 값을 왼쪽 변수에 대입하는 역할을 합니다. 이는 같다(==) 연산자와 혼동하기 쉬운 부분인데, 같다 연산자는 두 값이 동일한지 비교하는 역할을 합니다.

다음은 비교 연산자의 종류와 예시입니다.

  • ==: 두 값이 동일한지 비교합니다.
  • !=: 두 값이 서로 다른지 비교합니다.
  • <: 왼쪽 값이 오른쪽 값보다 작은지 비교합니다.
  • <=: 왼쪽 값이 오른쪽 값보다 작거나 같은지 비교합니다.
  • >: 왼쪽 값이 오른쪽 값보다 큰지 비교합니다.
  • >=: 왼쪽 값이 오른쪽 값보다 크거나 같은지 비교합니다.

예시:

const a = 10;
const b = 20;

console.log(a == b); // false
console.log(a != b); // true
console.log(a < b); // true
console.log(a <= b); // true
console.log(a > b); // false
console.log(a >= b); // false

2. 논리 연산자

논리 연산자는 두 개의 논리값을 조합하여 새로운 논리값을 만들 때 사용합니다.

다음은 논리 연산자의 종류와 예시입니다.

  • &&: 두 값 모두 참일 때만 참입니다.
  • ||: 두 값 중 하나라도 참이면 참입니다.
  • ! : 논리값을 반전합니다.

예시:

const a = 10;
const b = 20;

console.log(a > 0 && b > 0); // true
console.log(a > 0 || b > 0); // true
console.log(!a); // false

3. 증감 연산자

증감 연산자는 변수의 값을 1씩 증가 또는 감소시키는 데 사용합니다.

  • ++: 변수의 값을 1씩 증가시킵니다.
  • --: 변수의 값을 1씩 감소시킵니다.

증감 연산자는 변수 앞에 붙여서 전위 연산자로 사용하거나 뒤에 붙여서 후위 연산자로 사용할 수 있습니다.

 

전위 연산자:

let a = 10;

console.log(++a); // 11
console.log(a); // 11

 

후위 연산자:

let a = 10;

console.log(a++); // 10
console.log(a); // 11

4. 반복문

반복문은 특정 조건이 만족될 때까지 특정 코드 블록을 반복적으로 실행하는 데 사용됩니다.

다음은 자바스크립트에서 주로 사용하는 반복문입니다.

  • for 문: 특정 횟수만큼 코드 블록을 반복합니다.
  • while 문: 특정 조건이 참일 때까지 코드 블록을 반복합니다.
  • do while 문: 코드 블록을 한 번 실행한 후, 특정 조건이 참일 때까지 반복합니다.

for 문 예시:

  • 특정 횟수만 반복할 때 사용
  • 1부터 10까지 출력
for (let i = 1; i <= 10; i++) {
    console.log(i);
}

 

while 문 예시:

  • 조건이 참일 때까지 반복
  • 10보다 작을 때까지 숫자를 입력받기
let i = 0;

while (i < 10) {
  console.log(i);
  i++;
}

 

do while 문 예시:

  • 조건이 참인 동안 반복적으로 코드를 실행하고, 마지막에 한 번 더 실행합니다.
  • i가 10보다 작을 동안 출력
let i = 0;

do {
  console.log(i);
  i++;
} while (i < 10);

5. 실습 문제

  1. 1부터 100까지의 합을 구하는 코드를 작성하십시오.
  2. 1부터 10까지 홀수만 출력하는 코드를 작성하십시오.
  3. 100부터 0까지

 

자바스크립트 배열 학습 정리

1. 배열 기초

  • 변수는 하나의 값만 담을 수 있지만, 배열은 여러 개의 값을 담을 수 있습니다.
  • 배열은 대괄호 []를 사용하여 생성하고, 값은 쉼표 ,로 구분합니다.
  • 배열의 요소는 인덱스 번호로 접근할 수 있으며, 인덱스는 0부터 시작합니다.
// 배열 생성
const fruits = ["바나나", "사과", "딸기", "포도", "수박"];

// 배열 요소 접근
console.log(fruits[0]); // "바나나"
console.log(fruits[2]); // "딸기"

2. 배열 길이

  • 배열의 길이는 length 속성을 사용하여 확인할 수 있습니다.
// 배열 길이 확인
console.log(fruits.length); // 5

3. 반복문과 배열

  • for 반복문을 사용하여 배열의 모든 요소를 순회할 수 있습니다.
// 배열 요소 순회
for (let i = 0; i < fruits.length; i++) {
  console.log(fruits[i]);
}
 

4. 문제 해결

  • 과일 이름과 가격을 담은 두 개의 배열을 만들고, for 반복문을 사용하여 과일 이름과 가격을 함께 출력합니다.
const fruits = ["바나나", "사과", "딸기", "포도", "수박"];
const prices = [1000, 2000, 3000, 4000, 5000];

// 과일 이름과 가격 출력
for (let i = 0; i < fruits.length; i++) {
  console.log(`${fruits[i]}의 가격은 ${prices[i]}원입니다.`);
}
 
  • 12개담은 배열을 만들고, for 반복문과 if 문을 사용하여 사용자의 생년월일을 입력받아 띠를 출력합니다.
const signs = ["쥐", "소", "호랑이", "토끼", "용", "뱀", "말", "양", "원숭이", "닭", "개", "돼지"];

// 사용자 생년월일 입력
const year = parseInt(prompt("출생 연도를 입력하세요: "));

// 띠 출력
for (let i = 0; i < signs.length; i++) {
  if ((year - 4) % 12 === i) {
    console.log(`당신의 띠는 ${signs[i]}입니다.`);
    break;
  }
}
 

5. 추가 정보


  1. 주의할 점은 해당 강의를 보지 않은 사람이 이해할 수 있도록 타인에게 가르치듯이 작성해주세요.
  • 왜 클래스 리뷰를 하나요?
  • 단순 강의를 듣는 것만으로는 절대로 기억할 수 없습니다. 다른 사람을 가르치는 글을 작성하는 것만으로도 기억율을 극단적으로 높힐 수 있습니다.

셀프 채점 기준

  • [ ] 단순 개념 정리가 아니라 타인에게 개념을 설명해 주는 형태로 작성되었는지
  • [ ] 강의 내용을 그대로 작성한 것이 아니라 본인의 생각이 들어갔는지