1. 평가 입력받아 다르게 출력하기
문자열을 입력받아서 각각의 문자마다 출력을 달리 한다.
문제에서 제시한 예시는 다음과 같다.
평가 : 내용
A : best!!!
B : good!!
C : run!
D : slowly~
나머지 문자들 : what?
1-1 ) switch 문을 사용하도록 한다.
function solution(word) {
var result;
switch(word) {
case 'A':
result = 'best!!'
break;
case 'B':
result = 'good!!'
break;
case 'C':
result = 'run!!'
break;
case 'D':
result = 'slowly~'
break;
default:
result = 'what????????'
break;
}
console.log(word + ' is ' +result);
}
solution('A');
solution('C');
solution('X');
** 출력문 **
이렇게 하기는 했는데, 이상한 점이 있다.
만약에.. 진짜 만약에............................
점수 구분이 엄청나게 많다면..?
지금은 a, b, c, d 까지만 구분하고 나머지로 퉁치지만
a, b, c, d, e, f 이상의 구분이 생긴다면....?
아마 코드가 길어지는 것은 물론이고,
result에 할당되는 값도 하나하나 찾아가면서 고쳐줘야 할 것이다.
유지보수를 생각하면 너무나 골치아파지는 것.
(새나라의 신입이가 유지보수를 염려합니다)
그래서 객체에 넣는게 낫지 않을까? 라는 생각을 해보게 되었다.
1-2 ) 점수 구분을 객체에 넣어본다.
const obj = {
A: 'best!!',
B: 'good!!',
C: 'run!!',
D: 'slowly~',
E: 'study more',
F: 'fail T_T',
etc: 'what????????',
}
function solution(word) {
obj[word] == undefined ? word = 'etc' : word = word;
console.log(word + ' is ' + obj[word]);
}
solution('A');
solution('F');
solution('X');
이제 수정하고 싶을 때 객체 내부에 있는 값만 수정해주면 된다.
객체가 아래와 같이 바뀐다고 해도 출력하는데는 아무런 문제가 없다
** 출력 내용 **
2. 정수 1개 입력받아 카운트다운 출력하기
setInterval과 clearInterval 을 사용하면 된다.
입력된 숫자부터 0까지 카운트다운하기.
function solution(n) {
var count = setInterval(function() {
n--;
console.log(n);
if (n === 0) clearInterval(count);
}, 1000);
}
solution(3);
* 주의 할 점)
setInterval은 멈추지 않고 계속 기능하기 때문에 브라우저 내에서 다른 탭을 열면 동작이 느려지도록 되어있다.
** 출력화면 **
3. 짝수 합 구하기
정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구해보자.
function solution(n) {
let result = 0;
for(let i = 0; i <= n; i++) {
if (i % 2 === 0) result += i;
}
console.log(result);
}
solution(7);
끗 -
'frontend > javaScript' 카테고리의 다른 글
[js 기본기] 오늘의 학습내용 (0) | 2024.03.10 |
---|---|
[js / 알고리즘연습] codeup - q가 입력될때까지 출력하기, 합구하기, 16진수 구구단 출력하기 (0) | 2023.08.20 |
[js / 알고리즘연습] codeup - 가장 큰 수 출력, 짝홀수 출력하기 (0) | 2023.08.18 |
[js 기초] Object.values(), Object.keys(), Object.entries() (다른 메소드와 조합해서 활용해보기) (0) | 2023.08.17 |
[js 기초] map, reduce, filter (array와 object에 사용하기) (0) | 2023.08.16 |