728x90
20220804(목)
- 목차
- 시험 리뷰
- for 응용
- function 응용
- Debugger
< for 와 res.push 사용해서 배열 합계, 평균 구하기 >
1. for 사용해서 국어 성적 합계 및 평균 구하기
// [국어, 영어, 수학] * 6 구조로 배열을 만든다.
const score = [[80, 90, 74],
[84, 94, 80],
[80, 90, 88],
[82, 86, 90],
[92, 80, 80],
[70, 80, 88]];
// 국어 성적
let kor_sum = 0;
let kor_avg = 0;
for (let i = 0; i < score.length; i++)
{
kor_sum = kor_sum + score[i][0]; // 영어, 수학은 score[i][1], score[i][2]로 구하면 된다.
}
kor_avg = kor_sum / score.length;
2. outStr 사용해서 list 출력하기
let outStr = '';
outStr += '<ul>';
outStr += '<li> 국어 총점 : ' + kor_sum + '점, 평균 : ' + kor_avg.toFixed(2) + '점</li>';
outStr += '<li> 영어 총점 : ' + eng_sum + '점, 평균 : ' + eng_avg.toFixed(2) + '점</li>';
outStr += '<li> 수학 총점 : ' + mth_sum + '점, 평균 : ' + mth_avg.toFixed(2) + '점</li>';
outStr += `</ul>`;
3. 학기별 성적 총합과 평균 구하기
.push : 뒤에 넣어버린다.
let res = [] // result 배열 넣을거야~ 알리기
// 학기별 성적
let sum = 0;
let avg = 0;
let res = []; // result 배열
// 1학년 1학기 성적
sum = score[0][0] + score[0][1] + score[0][2]; // 1학년 2학기 = score[1]의 [0, 1, 2], ...
avg = sum / 3;
res.push(sum);
res.push(avg.toFixed(2));
4. outStr 사용해서 list 출력하기
outStr += '<ul>';
outStr += `<li> 1학년 1학기 총점 : ${res[0]} 점, 평균 : ${res[1]} 점</li>`;
outStr += `<li> 1학년 2학기 총점 : ${res[2]} 점, 평균 : ${res[3]} 점</li>`;
outStr += `<li> 2학년 1학기 총점 : ${res[4]} 점, 평균 : ${res[5]} 점</li>`;
outStr += `<li> 2학년 2학기 총점 : ${res[6]} 점, 평균 : ${res[7]} 점</li>`;
outStr += `<li> 3학년 1학기 총점 : ${res[8]} 점, 평균 : ${res[9]} 점</li>`;
outStr += `<li> 3학년 2학기 총점 : ${res[10]} 점, 평균 : ${res[11]} 점</li>`;
outStr += `</ul>`;
document.body.innerHTML += outStr;
< function 으로 배열 합계와 평균 구하기 >
// [심화] 함수로 더 해볼까? 배열을 집어넣어서 합계와 평균을 던져줘!
const calcScore = function(ar)
{
let total = 0;
let resAr =[]; // 합, 평균이 들어갈 배열
for (let i = 0; i < ar.length; i++)
{
total = total + ar[i];
}
resAr[0] = total;
resAr[1] = total / ar.length;
return resAr;
}
// --------------------------------------------------------------------------
// [국어, 영어, 수학] * 6 구조로 배열을 만든다.
const score = [[80, 90, 74],
[84, 94, 80],
[80, 90, 88],
[82, 86, 90],
[92, 80, 80],
[70, 80, 88]];
let aa = calcScore(score[0]);
console.log(aa[0]);
console.log(aa[1]);
< JS 메모리 맵 _ Heap Area>
[data] |
(1) 기본 데이터 타입이 아닌 data (2) 실행될 때가 되어야 알 수 있는 data |
[운영방식] |
(1) 변수명으로 접근하는 것이 아닌 레퍼런스 값을 통해 접근한다. 레퍼런스 값 : 생성 여부도 불투명하다. 큰 데이터 값은 관리할 수 있겠지만 이중관리 힘들어~ (2) 레퍼런스 값을 스택이나 Global 영역의 변수에 저장하여 간접적으로 접근하는 것 |
http://www.tcpschool.com/c/c_memory_structure
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
< 디버거 debugger >
- 의미
V8엔진에게서 제어권을 내가 뺏어오는 것!
제어권을 Debugger로 이관
- 특징
버그를 잡는 프로그램
CPU나 V8엔진과 직접 통신한다.
- 사용 이유
1. 프로그램의 상태 파악
2. 문제점을 개선하기 위해서 사용 - break-point
- 제어수행
step-over : 제어권을 나에게 주니 누를 때 마다 f10 하나씩 돌아간다.
resume(다음 브레이크 포인터까지 쭉 돌린다.)
- 상태보기
break-point : f10 눌러서 브레이크 포인트를 걸어! v9엔진이 제어권을 나에게 준다.
watch : 감시 표현식에 궁금한 것들(식 입력 가능) 입력해서 확인 가능
call stack : 어디서 뭘 호출하고 있는지 화살표로 표시됨
[연습문제] 띠 판단 함수 만들기
// 사용자에게 태어난 년도를 입력받는다.
// 무슨 띠인지 판단하는 함수 작성
// 귀하는 xx띠 입니다. 출력 alert 코드 작성
const getYearSymbol = function(birth)
{
let getYearSymbol = '';
const val = birth % 12;
switch(val)
{
case 0 : yearSymbol = '원숭이' ; break;
case 1 : yearSymbol = '닭' ; break;
case 2 : yearSymbol = '개' ; break;
case 3 : yearSymbol = '돼지' ; break;
case 4 : yearSymbol = '쥐' ; break;
case 5 : yearSymbol = '소' ; break;
case 6 : yearSymbol = '호랑이' ; break;
case 7 : yearSymbol = '토끼' ; break;
case 8 : yearSymbol = '용' ; break;
case 9 : yearSymbol = '뱀' ; break;
case 10 : yearSymbol = '말' ; break;
case 11 : yearSymbol = '양' ; break;
default : yearSymbol = '알수없음' ; break; // else와는 달라! 전혀 내가 생각할 수 없는 상황!
}
return yearSymbol;
}
const input = prompt('출생년도를 입력하세요', '1997');
const birth = Number(input);
const sym = getYearSymbol(birth);
alert(`귀하의 띠는 ${sym}띠 입니다`);
728x90
'🏫 Open API_JAVA' 카테고리의 다른 글
[14일차] 콜백함수 (forEach / map / filter) / arrow / time (0) | 2022.08.09 |
---|---|
[13일차] JS 함수 호출방식 / 가변 파라미터 / 디폴트 파라미터 / 콜백 (0) | 2022.08.05 |
[11일차] 함수 / 임시변수 (0) | 2022.08.03 |
[10일차] 반복문 for / while / 제어 break 와 continue (0) | 2022.08.02 |
[9일차] JavaScript Switch / Array (0) | 2022.08.01 |