자바스크립트에선 사칙연산이 바로바로 가능합니다.
+ - / *
기호를 이용해 더하기, 빼기 등 사칙연산을 할 수 있습니다. (차례로 덧셈 뺄셈 나눗셈 곱셈입니다)
의심가시면 콘솔창에 출력해보시면 되겠습니다.
console.log(1 + 3)
그럼 콘솔창에 4가 출력되겠죠?
신기하게도 + 기호는 문자가 적어도 하나가 있으면 문자 더하기 연산을 해줍니다.
console.log(1 + '3')
콘솔창에 13이라는 글자가 출력될겁니다.
문자 더하기 연산은 문자를 그냥 양옆으로 붙여주는 연산입니다.
+ 기호는 용도가 두가지임을 잘 기억해주시면 되겠습니다. 숫자 더하기도 되고 문자 더하기도 됩니다.
나머지 -, *, / 기호는 문자 '3'을 만나도 숫자처럼 연산해줍니다.
Q. 이자율 계산하기
민준쿤은 은행에 예금을 하러 갔는데 예금 금액에 따라 이율이 달라지는 것을 보고 크게 당황했습니다.
예금액이 5만원 미만이면 이율이 연 15퍼센트,
예금액이 5만원 이상이면 이율이 연 20퍼센트라고 합니다.
(실은 높은 이율에 당황했습니다)
그래서 민준이는 2년 후의 예금액을 자동으로 계산해주는 기계를 자바스크립트로 만들려고하는데 어떻게 코드를 짜면 될까요?
var 예금액 = 60000;
var 미래예금액 = 0;
//여기에 어떤 코드가 들어가야할까요?
console.log(미래예금액)
예시) 예금액이라는 변수에 60000을 집어넣으면 86400 이게 콘솔창에 출력되어야 합니다. (미래예금액)
지금 미래예금액은 0으로 설정되어있는데, 이제 미래예금액을 계산해주는 코드를 짜면 되겠죠?
대충 이런게 아닐까요.
이율이 연 15퍼센트라면 2년 후의 예금액은
미래예금액 = 예금액 * 1.15 * 1.15
이렇게 계산할 수 있을 것 같습니다.
(이미 0이 할당되어있는 미래예금액 변수에 새로운 값을 재할당을 한겁니다)
그런데 예금액에 따라서 이자율이 달라집니다.
예금액이 5만원 이상이라면 연 이자가 20퍼센트입니다.
미래예금액 = 예금액 * 1.2 * 1.2
계산 식이 이렇게 되겠죠.
그럼 경우에 따라서 미래예금액 계산식이 달라지니
이렇게 코드를 짜면 될 것 같습니다.
var 예금액 = 60000;
var 미래예금액 = 0;
if ( 예금액 >= 50000 ){
미래예금액 = 예금액 * 1.2 * 1.2 ;
} else {
미래예금액 = 예금액 * 1.15 * 1.15 ;
}
console.log(미래예금액)
이럴 경우에 이런 코드를 실행해달라~ 라는건 조건문 if 밖에 없습니다.
예금액이라는 변수를 4만원으로 바꾼 후 실행하면 뭐 어떻게 나옵니까. 연이율이 15퍼센트 적용되어서 나오겠죠?
Q. 커피 리필을 이상하게 해주는 곳이 있습니다. 최대한 마실 수 있는 커피양을 계산해봅시다.
방금 마신 커피의 3분의 2만 리필해주는 카페가 있습니다.
예를 들면 처음 커피를 90ml 주문하면 첫 리필은 60ml를 해주며, 그 다음 리필은 40ml를 해주는 카페입니다.
횟수제한도 있습니다. 총 2회 리필이 가능합니다.
그럼 처음 주문한 커피 양에 따라서 최대한 마실 수 있는 커피를 콘솔창에 계산해주는 코드를 작성해봅시다.
var 첫커피양 = 360;
var 마신커피 = 0;
//여기 어떤 코드가 들어가면 될까요?
console.log(마신커피)
예시) 첫커피양에 360을 집어넣으면 콘솔창에 마신커피를 출력했을 때 760이 출력되어야합니다. (360 + 240 + 160)
팁) 새로운 변수를 만드는 것도 좋은 생각입니다.
고등학교 수학시간을 떠올리게 만드는 수열 문제입니다.
나중에 반복문을 배우신 후엔 커피리필 횟수가 100번일 경우도 한번 계산해보시길 바랍니다.
우리가 프로그래밍 문법 배운게 별로 없기 때문에 문제는 별로 어렵지 않습니다.
그냥 수학 문제 풀듯 푸시면 됩니다.
그런데 변수를 배웠으니 변수를 많이 이용해서 풀어보도록 합시다.
그럼 1회 리필했을 때의 리필양 & 흡입 총량을 먼저 계산해봅시다.
var 첫커피양 = 360;
var 마신커피 = 0;
var 리필양 = (첫커피양 * 2 / 3);
마신커피 = 첫커피양 + 리필양;
console.log(마신커피)
첫 리필양은 리필양이라는 변수에 저장했습니다.
그리고 마신커피라는 변수에 총 흡입한 커피의 양을 더해서 집어넣었습니다.
이번엔 2회 리필시의 양도 한번 계산해봅시다.
var 첫커피양 = 360;
var 마신커피 = 0;
var 리필양 = (첫커피양 * 2 / 3);
마신커피 = 첫커피양 + 리필양;
var 리필양2 = (리필양 * 2 / 3);
마신커피 = 마신커피 + 리필양2;
console.log(마신커피)
두번째 리필양은 리필양2라는 변수에 저장했습니다.
그리고 이걸 마신커피에 더해주면 되겠죠?
그럼 콘솔창에 원하는 결과가 출력될 것입니다. 짝짝짝
그런데 초보분들은 여기서 요런표현이 약간 어려울 수 있습니다.
마신커피 = 마신커피 + 리필양2;
아니 마신커피라는 변수에 마신커피 + 리필양2를 더한다니?
내 자신을 더하는건가? 라고 생각할 수 있지만 별거 아니고
그냥 등호 왼쪽에 있는 마신커피라는 기존 변수에 새로운 값을 할당하는 것이라고 생각하시면 됩니다.
새로운 값은 원래있던 값인 마신커피와 리필양2를 더한 값이죠.
(보통 변수를 하나 더 만들기 싫어서 이런 식으로 사용합니다.)
현업에서 일하시는 나이많은 코딩 변태분들은 변수같은거 덜 쓸수록 좋아합니다.
그래서 변수를 좀 줄여보도록 합시다.
리필양2라는 변수를 새로 만들지 않고 리필양이라는 변수를 재활용해서 이용할 수 있습니다.
그래서 밑에처럼 코드를 작성해도 똑같은 답이 나올겁니다.
var 첫커피양 = 360;
var 마신커피 = 0;
var 리필양 = (첫커피양 * 2 / 3);
마신커피 = 첫커피양 + 리필양;
리필양 = (리필양 * 2 / 3);
마신커피 = 마신커피 + 리필양;
console.log(마신커피)
왜 그런지는 하나하나 해석해보시면 되겠습니다.
하지만 남의코드 읽고 해석하는건 매우 힘든 일이기 때문에
여러분이 직접 한글 등으로 로직세운 뒤에 코드로 바꾸는 식으로 연습 많이 해보시길 바랍니다.