javascript (2)

이재영·2023년 3월 7일
0

HTML CSS JS

목록 보기
6/22
post-thumbnail

컴파일 언어와 인터프리터 언어

컴파일러 언어

  • 프로그램 코드를 컴파일해서 컴퓨터가 알아들을수 있는 기계어로 번역해준다.
  • 소스 코드 전체를 한번에 번역하고 실행파일을 만들어서 실행해준다.
  • 장점: 파일의 크기가 큰데 실행속도가 빠르다.
  • 실행하기전에 전체코드를 번역해서 오류를 미리 알 수 있다.
  • 대신 번역 과정 시간이 좀 걸린다.
  • C,C++,JAVA,Python 등등

인터프리터 언어

  • 프로그램 코드를 한줄 씩 읽으면서 번역과 실행을 한다.
  • 장점: 프로그램 실행 도중에 동적으로 소스코드를 수정이 가능하다.
  • 실행하는 크기가 작고 소스 코드의 수정이 용이하다. 그래서 디버깅 하기가 편하다.
  • 소스 코드가 실행될때마다 번역과 실행을 반복해서 속도는 좀 느리다.
  • 오류를 실행중에 발견할 수 있다.
  • javascript 등등

논리 연산자 ||, &&

|| 논리합 (OR)

 a||b -> a나 b 둘중에 하나라도 참이면 참
 0  0 -> false
 0  1 -> true
 1  0 -> true
 1  1 -> true


 && 논리곱 (AND)
 
 a&&b -> a, b 둘다 참이여야 참
 0 0 -> false
 0 1 -> false
 1 0 -> false
 1 1 -> true

삼항연산자

한줄로 코드들을 표현할 수 있다. 잘쓰면 편한데 가독성이 떨어진다.

조건 ? 참 : 거짓;

console.log(1<2 ? "이건참이야" : "이건 거짓이야");
console.log(1 < 2 ? 3 > 4 ? "두번째는 참이야" : "두번째는 참이 아니야":"첫번째가 참이 아니야");

switch

switch (조건) {
    case "조건값":
         "수행할 구간"
        break;

    default:
        break;
}

while

while 반복문 무한히 돌아간다.
while ("값이 true 무한으로 돌아간다. false 값을 변경해주어야 반복문의 멈춘다.")
break 문으로 반복을 종료시켜줄 수 있다.

while(true){
   if(){

	break; // 조건이 맞을 때 반복을 끝낸다.
   }
}

prompt

사용자가 브라우저에 값을 간단히 입력 받을 수 있는 상태창 띄워준다.
prompt 간단한 입력값을 받아올 수 있다.

let value = prompt("값을 입력해보시오");
console.log("value : ", value );

우리가 입력받은건 문자열이기때문에 문자열을 출력해준다. 그러므로
숫자로 형태를 변화시켜주는 작업이 필요하다.
parseInt("숫자로 정수로 변경할 변수나 값");
Number("숫자로 변경할 변수나 값");
다른 형태의 type을 number type으로 형변환 시켜준다.
parseInt(inputNum) = Number(inputNum2); 이 2개 같다.


Math.random

Js에서 랜덤값을 구할 수 있는 친구
Math.random(); // 0~1까지의 랜덤수
parseInt() 를 사용해서 정수로 변환을 하고 값이 너무 작으니깐 곱해줘야한다.

for(i=0; i<3; i++){
    // 랜덤수가 3개 
    console.log(parseInt(Math.random()* 3));
}

배팅 묵찌빠

// 우리가 만들어볼거 업다운 게임
// 숫자 맞추기

// 1. 플레이어가 있고 컴퓨터가 있고
// 2. 플레이어는 선택할수 있게하고, 컴퓨터는 랜덤값
// 3. 플레이어가 선택할 수 있는 제어문
// 4. 게임의 종료 시점을 정해야겠다
let playSelect;

// 1~ 100의 랜덤숫자
let comSelect = parseInt(Math.random()*99+1);

let count = 0; // 시도를 몇번할건지

let max = 100; // 플레이어가 선택이 가능한 최대의 숫자.
let min = 0; // 플레이어가 선택이 가능한 최소의 숫자.

let subText = ""; // 컴퓨터가 알려줄 문구
let maxCount = parseInt(prompt("게임 몇번할래?")); //게임횟수 이걸로

// 반복 되어야 하니까
while(playSelect !==comSelect && count < maxCount){
    // ES6 에서 문자열을 사용할 때 편하게 사용할 수 있는 기법
    // 템플릿 리터럴 문자를 다룰때 줄바꿈같은걸 편하게 사용할 수 있게 해준다.
    // `백틱`
    // "안녕"+playerSelect
    // `${변수}문자열`
    playSelect = prompt(`${subText}\n숫자를 입력하세요\n 
                        최소: ${min} | 최대 : ${max} | 남은횟수 : ${maxCount - count}`);
    
   //playSelect = parseInt(playSelect);

   // 입력된 값이 숫자인지 확인? 문자쓰면 어떻게?
   // isNaN 숫자가 아닌 값을 입력했는지?
    if(isNaN(playSelect)){

   subText = "숫자 입력 하셈";
        //다시 게임이 시작되야 하기때문에 아래코드는 읽지 않게 할수 없을까?
        continue; // continue 는 그 줄부터 밑으로 읽지 않고 반복문 시작점으로 돌아간다.
    }
    // 입력값이 최소와 최대 사이의 값인지 확인
    if(min >=playSelect || max <= playSelect){
    
   subText = `너 입력값 확인해 최소:${min} | 최대:${max}`;
        continue;
    }


   // 게임의 로직 시작

if(playSelect > comSelect){
    // max 최대값을 다시 겹치지 않게 입력해준다.
    max = playSelect;
    subText = "다운";
}


   else if(playSelect < comSelect){
       //min 최소값을 다시 겹치지 않게 입력해준다.
        min = playSelect;
        subText = "업";
    }
    else{
        count = count +1;
        console.log(`${count}번 시도해서 너 맞춤`);
        //게임 끝났음
        break;
    }
    
   count++;
    if(count >=maxCount){
        console.log("게임오버")
    }

}

배팅 묵찌빠
https://github.com/zam0ng/20230310/blob/master/20230313/batting.js

profile
한걸음씩

0개의 댓글