221109 휘몰아친다

hana jeong·2022년 11월 9일
0

스파르타 부트캠프

목록 보기
10/68

자바스크립트 다시 복습...

배운 점

  • 문자열
    '124'라는 문자와 숫자 5를 더할 수는 없다
    만약 더하면 이렇게 나온다

    '124' + 5
    '1245'

5도 문자열로 자동으로 인식해서 129가 아닌 '1245'로 출력됨

만약 문자열 '124'를 숫자로 바꾸어 숫자 5와 합치고 싶다면

parseInt('124') + 5
console.log()

참고로 parseInt는 정수로 바꾸는 거임

parseInt('3.34') 

출력값 3

parseFloat('3.14')

출력값 3.14 (소수까지 나옴)

조건부연산자(삼항 연산자)

형식 : 조건식 ? 참일 때 실행되는 식 : 거짓일 때 실행되는 식

ex: let value = 5 < 0 ? '참입니다' : '거짓입니다';
value;

거짓입니다가 출력된다

break

let i = 0;
while (true) {
if (i === 5) break;
i++	
}
console.log(i)

i가 5면 5 === 5 가 되므로 더 이상 진행하지 않고 종료된다

continue

let i = 0;
while (i < 10) {
i++
if (i % 2 === 0) { // 짝수만
continue; //건너뛰기
}
console.log(i);
}

나머지가 0인 수는 짝수니까 그 때는 건너뛰고 계속 해라라는 뜻
만약 i가 3이면 나머지 값이 1이니까 3이 찍힐 것이다
continue도 잘 쓰면 좀 더 코드를 간단하게 쓰기 좋을 듯 하다

중첩반복문

for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; j++) {
	console.log(i, j);
    }
  }

// i==0 j==0 console.log(0,0)
// i==0 j==1 console.log(0,1)
// ......중략
// i==0 j==9 console.log(0,9)
// i==0 j==10 조건x
// i==1 j==0 console.log(1,0)

중첩 반복문의 구조가 좀 헷갈려서 헤맸다
그래서 팀원들의 조언을 듣고 직접 써보았는데 아주 이해가 잘 된다!!

for (let i = 0; i < 5; i++){
	if(i % 2 === 0) continue;
		for (let j = 0; j < 5; j++) {
			if(j % 2 === 0) continue;
				for (let k = 0; j < 5; k++) {
					if (k % 2=== 0) continue;
	console.log(i, j, k); 
   	}
 }
}

이건 3개의 변수가 있는 중첩반복문이다
갑자기 갯수가 늘어나니까 빡세졌지만 그래도 아래와 같이 직접 써보니
이해가 빡 되었다

// i == 1 j == 0 continue
// i == 1 j == 1 k==0
// i == 1 j == 1 k==1 console.log(1,1,1)
// i == 1 j == 1 k=continue
// i == 1 j == 1 k==3 (1,1,3)
// i == 1 j == 1 k=4 continue
// i == 1 j == 1 k=5 조건x
// i == 1 j == 2 continue
// i == 1 j == 3 k = 0 continue
// i == 1 j == 3 k = 1 (1,3,1)

for (let i = 2; i < 10; i++) {
		if(i % 2 === 0) continue;
			for(let j = 1; j < 10; j++) {
				if(j % 2 === 0) continue;
	console.log(i, j, i * j)
 	}
  }  

이건 짝수를 제외한 구구단을 출력하는 중첩반복문이다
이걸 실행하면 2,4,6,8단(짝수) 빼고 나머지 홀수 단이 나온다

만약 짝수단만 나오게 하고 싶다면

for (let i = 2; i < 10; i++) {
		if(i % 2 != 0) continue;
			for(let j = 1; j < 10; j++) {
				if(j % 2 != 0) continue;
	console.log(i, j, i * j)
 	}
  }  

나머지가 0이 아니라는 표시로 바꾸어주면 간단하게 해결

근데 만약에 모든 구구단을 출력하고 싶다면?

for (let i = 2; i < 10; i++) {
			for(let j = 1; j < 10; j++) {
	console.log(i, j, i * j)
 	}
  }  

if를 지워주니 해결 ㅎ

느낀 점

알고리즘 강의를 들었는데 컴퓨팅적인 사고가 참 어려웠다
그리고 내가 표현하고자 하는 바를 아직 파이썬으로 어떻게 적어야할지 어색하고 감이 잡히지 않았다
프로그래머스에서 0단계를 풀어봤는데 2문제 풀고 막혀서ㅋㅋㅋ
아 내 실력이 아직 여기구나 하는 생각이 들었다
파이썬도 복습해야하는데 자바스크립트에서 안 배운 개념 배우기도 바쁘다
오늘은 자바스크립트에서 중첩반복문을 배웠는데, 파이썬으로 진행되는 알고리즘 강의에도 비슷하게 이중for문이 나와서 표현방식만 다를 뿐 비슷하게 플로우가 흘러가는구나 하는 생각이 든다
자바스크립트 중첩반복문으로 구구단도 만들었는데 재밌었다
그래도 어려운게 있으면 도와주려는 튜터님들과 정보 공유하는 동기들이 있어 힘이 난다
배워야 할 게 많은데 중심을 잘 잡고 차근차근 해냐가야겠다
자기 전에 폼롤러하고 자야겠다

학습 목표 달성여부

  • 렛츠기릿 자바스크립트 기본 문법27 까지 복습 O
  • 파이썬 기초 문법 벨로그에 정리(TIL과는 별개) X
    -> 주말로 스킵^^...
  • 알고리즘 강의 1주차 수강 O
    -> 어찌저찌 듣긴 했는데 파이썬을 더 잘 알아야 풀 수 있는 문제도 있는 듯 해서 주말에 다시 풀복습할거다... 주말은 파이썬의 날...

내일 학습 목표

  • 렛츠기릿 자바스크립트 배열 다시 듣고 정리
  • 렛츠기릿 자바스크립트 DOM 강의 3개 듣고 실습
profile
https://developer-hh.tistory.com 로 옮깁니다

1개의 댓글

comment-user-thumbnail
2022년 11월 10일

꺽이지 않는 마음이 제일 중요한 것 같아요
차근 차근 화이팅입니다 ㅎㅎ

답글 달기