0812 TIL

기멜·2021년 8월 12일
0

자바스크립트 독학

목록 보기
10/44

별찍기

정사각형 별찍기

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('&nbsp');
  }
  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 이 되면 식이 성립이 안되니까 빠져나옴.

오늘의 반성🥲: 공부 더 많이 하자. 별찍기 강의 많이 보자.

profile
프론트엔드 개발자를 꿈꾸는 도화지 위를 달리는 여자

0개의 댓글