for in
{ const arr = [100, 200, 300, 400, 500]
for (let i in arr) { //1
document.write(i); or document.write(arr[i]);
}
}
for of 문과 다르게 객체의 키(자리값만 가져올 수 있다.)
document 이후에 i만 작성하면 키만 출력되나, arr[i]를 작성 시 키의 값이 출력된다.
for of 문으로는 키값만 출력할 수 있지만 for in은 document.write 이후에 어떻게 작성하느냐에 따라 자리값과 키값 모두를 출력할 수 있다.
1. arr 배열의 키를 출력한다는 구문이다.
swich
{
const num = 100;
switch(num) {
case 90:
document.write("실행90");
break;
case 80:
document.write("실행80");
break;
case 70:
document.write("실행70");
break;
case 60:
document.write("실행60");
break;
case 50:
document.write("실행50");
break;
default:
document.write("0");
}
}
다중 if문과 같은 형식이다.
조건식 대신 변수 이름을 넣어준다.
swich문은 case와 값을 하나씩 비교하여 일치하는 case를 실행(출력) 시킨다.
if와 다르게 조건을 만족한 후에도 식이 종료되지 않으므로 꼭 break를 사용하여 끊어주어야 한다.
default는 어느 case와도 일치하는 값이 없을 때 출력된다.
default 에는 break문을 작성하지 않는다.
중첩 for문으로 구구단 만들기
for(let i=2; i<=9; i++){ //1
document.write(i + "단","<br>"); //2
for(let j=1; j<=9; j++){
document.write(i + "X" + j + "=" + i*j); //i(곱해지는 수) * j (곱하는 수)
document.write("<br>"); //3
}
document.write("<br><br>"); //4
}
1. 구구단의 2단부터 9단까지 반복하는 for문.
2. "n단"을 출력한 뒤에 줄이 바뀜. ","로 n단과 줄바꿈 태그를 구분한다.
3. 곱해지는 1부터 9가 출력되는 for문이다. 곱해지는 수 i와 곱하는 수 j가 반복되며 출력된다.
"+"로 연결 연산되어 출력되며, 등호 옆에는 i와 j가 곱해진 값이 출력된다.
곱해진 값이 출력된 뒤에 줄바꿈 태그가 출력된다.
4. 두 for문이 전부 출력된 뒤에 줄 바꿈이 두 번 되는 태그이다.
수를 입력 받아 양수인지 음수인지 아니면 0인지 구분하기
const number = parseInt(prompt("숫자를 입력하세요"));
function a(n) { //1
if (n > 0) { //2
document.write(`${n}은 양수입니다.`);
} else if (n < 0) { //3
document.write(`${n}은 음수입니다.`);
} else { //4
document.write(`${n}은 0입니다.`);
}
}
if(!isNaN(number)) { //5
a(number); //6
}
1. parselnt ( )를 변수로 저장하는 구문.
parseInt 함수는 문자열에서 숫자를 추출할 때 사용한다.
입력 받은 문자열을 실제 숫자값으로 바꾸어서 반환하는 함수이다.
2. 입력받은 수 n이 0보다 클 때 (양수일 때)를 구분하기 위해 n > 0이라는 조건을 준다.
3. 입력 받은 수 n이 0보다 작을 때 (음수일 때)를 구분하기 위해 n < 0 이라는 조건을 준다.
4. 입력 받은 수 n이 0보다 크지도 않고 작지도 않다면 0 밖에 남지 않는다.
5. if 문을 하나 더 작성하여 입력 받은 것이 숫자인지 아닌지를 구분해 주어야 한다.
isNaN은 어떤 값이 NaN인지 판별하는 함수이다.
isNaN 앞에 !가 붙어있으므로 숫자가 아닌 것을 판단하도록 한다.
여기서 NaN은 Not-A-Number(숫자가 아님)을 뜻한다.
6. parseInt 함수 이름인 a를 작성하여 함수가 출력되도록 한다.
두 수를 입력 받아 최대 공약수 구하기
function a (n, m) { //1
let max = n > m ? n : m; //2
let a = 0; //3
for (let i = 1; i <= max; i++) { //4
if (n % i === 0 && m % i === 0) { //5
a = i; // 최대공약수 //6
}
}
return a; //7
}
document.write(`308과 20의 최대공약수 : ${getGCD(308, 20)}`);
document.write(`45과 38의 최대공약수 : ${getGCD(45, 38)}`);
1. 최대 공약수를 구하기 위해서는 두 수가 필요하므로 여러 개의 함수를 작성할 수 있는 매개변수 함수를 작성해준다.
2. 둘 중에 더 큰 수를 max 값으로 두어야 하기 때문에 삼항 연산자를 사용하여 입력 받은 두 수 n과 m 중에 더 큰 수를 max 값에 저장해준다.
3. 최대 공약수를 출력할 변수를 하나 더 선언해준다.
4. for 문을 사용하여 max 값까지 반복하는 구문을 작성한다.
5. i가 n을 나누어도, m을 나누어도 0이 되어야 하기 때문에 동시에 같은 조건을 만족해야 하므로 &&(and 연산자)를 작성해준다.
6. n과 m 둘 모두를 나누어도 0이 되는 수를 만족한 i 값을 최대 공약수를 구하기 위해 선언한 변수에 넣어준다.
7. 리턴값 함수로 구해진 a의 값을 반환해준다.