“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
3월 3일 2차 시험을 봤는데요
이것도 한번씩 상기하는 것도 좋을것 같아 해설을 달아 정리하려고 합니다.
01. 1-50까지 for문으로 출력
for(let i = 1; i <=50; i++){
document.write(i);
};
- 1부터이기 때문에 let i = 1;로 선언
- 50까지이기때문에 i <= 50;
- 반복 될때마다 증가하여야하기때문에 i++
이렇게 반복문을 사용한 다음
- 출력문을 for문 안에 넣어 하나하나 출력하게 하였습니다.
02. 1-50까지 while문으로 출력
let i = 0;
while (i < 50) {
i++;
document.write(i);
}
현재 사용하는 반복문은 while문으로 실행전에 참거짓을 반복문입니다.
- let i = 0으로 변수를 선언후
- while문의 조건식에 i<50까지로 조건을 달아둡니다.
- while문 i++이라는 증감식을 넣어 반복될 때마다 값이 증가하도록 하였습니다.
- 출력문을 while문 안에 넣어 반복될때마다 출력될수 있도록 하였습니다.
증감식과 출력문의 순서
while문은 변수를 따로 선언하고 증감식도 조건식이 아닌 반복되는 while문 안에 있기 때문에 반복되는 반복문으로 순서가 값에 영향을 줍니다.
만약 위에서의 답이 아닌 변수가 1로 저장되어 시작된다면
조건식은 i <= 50 가 되고
출력문이 위로 증감식이 아래로 와야 위에서의 결과 값과 같은 결과가 나올 수있습니다.
let i = 1;
while (i <= 50) {
document.write(i);
i++;
}
03. 1-100까지 짝수로 출력(if문 사용X)
for(let i = 1; i*2 <=100; i++){
document.write(i*2);
};
저는 이답을 적었지만
for(let i = 2; i <=100; i+=2){
document.write(i);
};
변수 값 | 조건식 | 증감식의 변화 | 출력값 |
i = 1 | 1*2<100 | 2 | 1 |
2 | 2*2<100 | 3 | 2 |
3 | 3*2<100 | 4 | 3 |
... | ... | ... | ... |
50 | 50*2<100 | 51 | 50 |
51 | 51*2<100(false) | X | X |
이기때문에 출력문에 i*2을 넣어 짝수 를 출력하였습니다.
예제의 답은 정해지지 않습니다. 답보다 이해하고 왜 이런 답이 나왔는지 설명할수 있다면 된 것입니다.
하지만 위의 답은 출력문을 건드렸기때문에 깔끔하지 않다는게 단점입니다.
두번째 답은 변수 i 를 1로 저장하고 시작하여 증감식을 i+=2를 주어 표현하였기때문에 출력문을 i 그대로 출력할 수있습니다.
04. 1-100까지 홀수로 출력(if문 사용)
for(let i = 1; i <=100; i++){
if(i % 2 ==1){
document.write(i);
}
};
05. 테이블 50칸 출력(1-50숫자 출력)
let table = "<table border='1'>";
let num = 0;
for(let i = 1; i <=10; i++){
table += "<tr>";
for(let j = 1; j <= 5; j++){
num++;
table += "<td>" + num + "</td>";
}
table += "</tr>";
};
table += "</table>";
document.write(table)
테이블을 만들때 테이블 태그를 출력하는 것으로 생각하고 만들면 됩니다.
먼저 테이블 태그로 연다음 for문으로 tr태그와 td태그를 원하는 만큼 반복할수 있도록 조건식을 겁니다.
이때 tr은 밑으로 10줄, td는 for문을 한번더 사용하여 옆으로 5줄을 주게되면 50칸의 테이블이 나옵니다.
하지만 칸 안에 숫자를 순서대로 넣어야 하기때문에 먼저 for문 밖에 변수 num에 0을 선언하고 중첩된 for문 중 두번째 for문 안에 num++을 넣어 중첩된 두번째 for문이 반복될때마다 수 가 늘어납니다.
06. 1-10까지 합 출력
let sum = 0;
for(let i = 1; i <=10; i++){
sum += i
};
document.write(sum)
우선 1부터 10까지 합을구해야하기 때문에 변수 i는 1로 선언하여 시작하고 i<=10을 조건식으로 증감식은 ++로 주고 시작합니다. sum이라는 변수를 선언하여 준비하거 sum += i 로 반복문이 실행 될때마다 sum에 값이 계속하여 저장 되도록 합니다
그리고 출력문은 합계 하나만 출력되면 됨으로 출력문을 for문 밖에 주면 합계가 나오게 됩니다
07. 구구단 출력
for(let i = 2; i <=9; i++){
document.write(i + "단<br>")
for(let j = 1; j <=9; j++){
document.write(i+"*"+j+"="+ i*j+"<br>")
}
};
중첩 for문은 처음 for문이 처음 한번 진행되면 다음 for문을 전부 반복한다음 다시 첫번째 for문으로 돌아갑니다. 첫번째 for문에 변수 i를 2로 선언하면서 시작하며 9단까지이므로 i <= 9로 조건식을 겁니다. 값이 증가하므로 i++로 증감식을 주고 출력문으로 단을 출력합니다. 두번째 for 문에는 변수 j를 2로 선언하면서 시작하며 x9까지 이므로 j <= 9로 조건식을 겁니다 그리고 증가이므로 ++로 증감식을 줍니다. 출력문그리고 출력문까지 주면 단별로 구구단이 나옵니다.
08. 함수 유형 4가지 작성
//선언
{
function func(){
document.write("실행<br>");
};
func();
}
//익명
{
const func = function(){
document.write("실행<br>");
};
func();
}
//매개변수
{
function func(str){
document.write(str);
};
func("실행<br>");
}
//리턴
{
function func(){
const str = "실행<br>";
return str;
}
document.write(func());
}
09. 화살표 함수유형 4가지 작성
//선언
{
func = () => {
document.write("실행<br>");
};
func();
}
//익명
{
const func = () => {
document.write("실행<br>");
};
func();
}
//매개변수
{
func = (str) => {
document.write(str);
};
func("실행<br>");
}
//리턴
{
func = () => {
const str = "실행";
return str;
}
document.write(func());
}