25.03.28 (금) 34일차 JS - 3

허배령·2025년 3월 30일

괴발개발 TIL

목록 보기
44/54

반복문

반복문 종류 : for, while, for..of, for..in, forEach..

메뉴 주문

<h3>메뉴 주문하기</h3>
  <ol>
    <li>김밥 : 3000원</li>
    <li>라면 : 3500원</li>
    <li>돈까스 : 5000원</li>
  </ol>
  <button onclick="check1()">주문하기</button>
# JS
// 메뉴 주문하기
function check1() {

  // 메뉴 가격
  const gimbap = 3000;
  const ramen = 3500;
  const donkkaseu = 5000;

  // 주문 개수 카운트
  let gCount = 0; // 김밥
  let rCount = 0; // 라면
  let dCount = 0; // 돈까스

  // prompt로 입력한 값을 저장할 변수 선언
  let input; // undefined

  // 비교연산자
  // == (값이 동일한 경우)
  // === (동일 비교 연산자 : 값, 자료형 모두 같은 경우)

  // undefined == null (==로 비교시 같은 값이라고 인식됨)
  // undefined === null 
  // ㄴ(자료형도 같은지 비교 undefined 자료형과 object가 같냐?)

  // === -> 값, 자료형이 모두 같은 경우 true
  // !== -> 값, 자료형이 모두 다른 경우 true

  while (input !== null) { // 취소 누르기 전까지 반복, !==로

    input = prompt("메뉴 번호를 입력하세요!");

    switch (input) {
      case "1": gCount++; break;
      case "2": rCount++; break;
      case "3": dCount++; break;
      case null: alert("주문완료!"); break;
      default: alert("메뉴에 작성된 번호만 입력하세요");
    }

  }

  alert(`김밥 : ${gCount}, 라면 : ${rCount}, 돈까스 : ${dCount}`);
  let sum = (gCount * gimbap) + (rCount * ramen) + (dCount * donkkaseu);

  alert(`총 가격 : ${sum}`);
}

up & down

<h1>Up & Down Game</h1>

  <pre>
    1 부터 200 사이 난수를 몇 회만에 맞추는지 카운트하는 게임

    - Math.random() : 난수 발생(0 이상 1 미만의 난수를 생성)
    - Math.floor() : 내림 처리해서 정수로 변환
    - while()
    - break;
    - continue;
    - if()
  </pre>
# JS

// Up and Down 게임
  function startGame() {

  // 맞춰야하는 난수(1~200) 발생시켜 저장
  const answer = Math.floor(Math.random() * 200) + 1;

  // 정답 시도 회수를 세기 위한 변수 선언
  let count = 0;

  // prompt에 출력할 문자열
  let str = "1부터 200사이 숫자 입력";

  while (true) { // 무한 반복

    let input = prompt(str);

    if (input === null) { // 취소 클릭 시
      alert("게임 포기");
      break;
    }

    // 숫자 입력 후 확인 클릭 시
    const value = Number(input); // 입력 받은 값 숫자로 변환

    // 숫자가 아닌 문자열같이 잘못 입력한 경우
    // NaN (Not a Number : 숫자가 아니다)
    // isNaN(값) : 값이 NaN이면 true

    if (isNaN(value)) { // 숫자가 아닌 값을 입력한 경우
      alert("숫자만 입력해 주세요");
      continue;
    }

    if (value < 1 || value > 200) { // 범위 초과
      alert("1 ~ 200 사이 값만 작성해주세요");
      continue;
    }

    // 정답을 맞추기 위한 시도를 했기 때문에 count를 1 증가 
    count++;

    // 정답인 경우
    if (value === answer) {
      alert(`정답 !!! (${answer}) / 시도 횟수 : ${count}`);
      break;
    }

    // 정답이 아닌 경우
    if (value < answer) { // 작은 경우
      str = `${value} [UP] / 시도 횟수 : ${count}`;

    } else { // 큰 경우
      str = `${value} [DOWN] / 시도 횟수 : ${count}`;

    }
  }
}

profile
인생은 변수

0개의 댓글