정사각형 별찍기
for(let i=0; i<5; i++){
for(let j=0; j<5; j++){
document.write('*');
}
document.write('<br>')
}
*****
*****
*****
*****
*****
코드해석: 밖에 for이 먼저 실행되고 0인 상태로 안쪽 for문으로 이동한다. 그리고 j가 4(0,1,2,3,4 즉 5)가 될때까지 늘어난다. 밖에 for문으로 인해 맨 아래 <br>로 인해 줄 바꿈이 5번 일어난다.
삼각형 별찍기
for(let i=0; i<5; i++){
for(let j=0; j<=i; j++){
document.write('*');
}
document.write('<br>')
}
*
**
***
****
*****
코드해석: i 는 0,1,2,3,4 까지 찍히고, i=0 과 j=0 둘이 참이기때문에 별이 하나가 찍히고 j를 하나를 늘리면 1이 되고 i가 0이니까 거짓이니까 for문을 빠져나오게 되고 줄 바꿈이 이루어진다. i는 i++이니까 1로 커지고 그 다음부터는 j는 0,1 -> i=2 / j = 0,1,2 ~ i=4 / j=0,1,2,3,4 의 별이 찍히고 for문이 반복문이니까 j++을 해주어서 j는 5가 되고 <=i 라는 조건이 맞지 않아 반복문을 빠져나오게 된다.
그 다음 줄바꿈을 해줄려고 하고 맨 위로 올라갔는데 i=5라는게 성립이 안되기 때문에 코드자체가 종료하게 된다
역삼각형 별찍기
for(let i = 0; i < 5; i++) {
for(let j = 4; j > i; j--) {
document.write(' ');
}
for(let j = 0; j <= i; j++) {
document.write('*');
}
document.write('<br>');
}
*
**
***
****
*****
코드해석:
4 0
3 0
2 0
1 0
4 1
3 1
2 1
4 2
3 2
4 3
맨 처음 j=0 > i=0 은 성립이 안되기때문에 취소가 된다. 그리고 마지막 j=4 > i=4도 성립이 안되기 때문에 취소가 되서 처음엔 공백이 4개 마지막엔 공백이 없는 것이다. 그리고 맨 아래 for문은 독자적으로 돌아가기때문에 점을 0부터 i와 같은 0,1,2,3,4까지 별을 찍어준다. j <= i이기 때문
내가 코딩해본 역방향 삼각형 코드
for (i = 0; i < 5; i++) {
for (j = 4; j >= i; j--){
document.write('*')
}
document.write('<br>')
}
*****
****
***
**
*
코드해석:
일단 공백코드는 필요없다. 맨 밖에 for문이 다섯개의 열을 만들 것이다. 그리고 안쪽 for문은 0,1,2,3,4부터 시작하여 j=0 i=0이 될 때까지 true가 되어서 별을 하나 찍을 때까지 반복할 것이다. j= -1 이 되면 식이 성립이 안되니까 빠져나옴.
오늘의 반성🥲: 공부 더 많이 하자. 별찍기 강의 많이 보자.