자바스크립트 4

hee_hee_·2022년 12월 8일
0

딩..딩..

목록 보기
9/15
post-thumbnail

자바스크립트 활용

  • 주사위게임

var dice = Math.floor (Math.random() * 6 ) + 1;

dice 라는 변수에 math.floor 내림 함수, math.random 0~1 사이 숫자 임의로 출력.
우선순위는 가장 안쪽 괄호와 사칙연산 우선순위 따라서.
math.random에 임의의 숫자 0.5가 나왔다고 가정.
그러면 math.floor(0.5*6)+1이 됨
math.floor는 (3)+1 이 되고 딱 떨어지는 숫자라 내림 할 게 없음.
최종적으로 3+1 는 4가 됨.




  • 소수 출력하기

function isPrime(n) {
	var divisor = 2;
    while(n > divisor) {
    	if (n % divisor === 0) {
        return false;
        } else {
        	divisor++;
        }
    } return true;
}

소수는 1과 자기 자신으로 나누어 떨어지고 그 이외의 숫자로는 나누어 떨어지지 않는 수.
예를 들어 5 , 7 , 11
이러한 소수를 찾는 알고리즘

우선 isPrime이라는 이름의 함수를 만들어준다.
매개변수로 들어온 (n) 값이 소수이면 참, 아니면 거짓을 return하는 함수.
본인과 1 제외하곤 나누어 떨어지지 않기 때문에 2부터 자기 자신보다 1 작을 때까지 나누어서
나누어 떨어지는지 아닌지 검사.

2부터 나누기 위해 divisor 이라는 변수를 선언해주고
반복문을 통해 n과 divisor을 비교하는 코드 작성.
n 값이 divisor 보다 크면 계속해서 실행이 되는 것임.

반복문 안쪽엔 조건문.
조건문에서 n 과 divisor을 나누었을 때 나머지가 0이면 이 숫자는 소수가 아닌 것.
그 이외의 경우 divisor을 증가 시켜 처음 2 였던 divisor가 3,4 ... 쭉쭉 값이 증가되도록 만들어 줌.

while 문이 모두 종료가 됐을 때 여전히 코드가 실행된다면 어떠한 수로도 나누어 떨어지지 않았다는 것이고 이건 소수라는 것이며 return true 반환.

1을 false 처리 하려면 var divisor 아래에 if 문 삽입해서
if (n==1) {return false;}
해주면 됨.




  • 문자열 거꾸로 출력

function reverse(str) {
	var reverStr = '';
    for (var i = str.length -1; i>=0; i--) {
    	reverStr = reverStr + str.charAt(i);
    } return reverStr;
}

cosole.log(reverse('Hello'))

function rverse 라는 함수는 문자열 (str) 을 받아서 거꾸로 출력하는 함수.
문자열을 맨 뒤부터 출력해야 하니 인덱스를 0이 될때까지 감소하게 코드를 만들어야 함.
인덱스는 문자열의 자릿수를 의미 hello의 경우 h0 e1 l2 l3 o4 임 이걸 반대로 출력하는 것.

처음에 reverStr 라는 빈 문자열을 만들어주고 빈 문자열에 입력받은 문자를 거꾸로 붙여 나가는 것.
그리고 for문을 이용해서 var i는 str.length 문자열의 길이 -1 을 해줌.
이유는 문자의 인덱스가 0부터 시작하기 때문.
hello 의 경우 마지막 o의 인덱스가 4이기 때문에 4부터 하나하나 값을 줄여나갈 것임.
조건은 i가 0보다 크거나 같을 때라는 조건. i가 -1이 되면 중단되는 것임.
마지막 증감 연산자에서 감소시킴.
그리고 str메소드에 charAt메소드. 이건 문자열의 특정한 자리에 있는 문자열 꺼내오는 메소드.
그래서 str의 문자열의 i 번째 문자를 reverStr에 붙여주는 것.
그리고 for 문이 종료되어 return해주면 문자열이 거꾸로 출력됨.

실행시키면 현재 rverStr 는 빈 문자열
i 는 str.length -1 임.
현재 str로 Hello가 들어왔으므로 i 는 5-1의 결과인 4임.
i는 0보다 크거나 같다.
4는 0보다 크거나 같기 때문에 참이므로 for문 실행.
reverStr+str.charAt(4) Hello의 인덱스 4는 'o'
따라서 reverStr 안에는 'o'가 들어가게 됨.

그 이후 다시 for 문 반복. i-- 로 인해 i가 1 줄어들어 3임.
마찬가지로 3은 0보다 크거나 같기 때문에 참이므로 for문 실행됨.
reverStr+str.charAt(3) Hello의 인덱스 3은 'l'
따라서 reverStr 안에는 'l'이 들어가 o와 l 이 존재하게 됨.
이런식으로 조건이 참인 동안 반복하여 문자열이 거꾸로 담겨 출력하면 거꾸로 담긴 문자열을 확인할 수 있게 됨.




  • 구구단 출력하기

 for(var n = 2; n<10; n++) {
    for (var i = 1; i<10; i++){
        document.write( n + "x" + i + "=" + (n * i) + "<br>");
    }
 }

첫 for 문 n은 구구단의 단.
2로 시작해서 조건 10 미만인 경우 명령 실행하고 증감.
두번째 for 문은 곱해지는 값.
1로 시작해서 조건 10 미만인 경우 명령 실행하고 증감.

n 2는 10 미만이니 조건 실행.
i는 1이고 10 미만이니 조건 실행 n x i = (n * i) 출력
반복문이 멈추면
n 증감. 3 됨. 3은 10 미만이니 조건 실행
.
.
.
반복해서 구구단 완성!



profile
딩코딩코딩

0개의 댓글