JavaScript의 변수를 사용해 문제를 풀어보려고 한다.
문제. 1
나는 500원의 돈이 있어서
300원짜리 두부를 사서 엄마한테 "오는 길에 두부 사왔어요!"라고 얘기했어 이때 필요한 변수는 무엇일까? (내 수중의 돈, 두부의 원가는 바뀔 수 있음) |
풀이
<script>
let money = 500; //소지금
let tofuPrice = 300; //두부의 가격
document.write("오는 길에 두부 사왔어요!");
</script>
위 문제에서 요구하는 답은 필요한 변수를 구하는 것, 소지금 500원과 두부의 원가 300원을 변수로 선언한다.
소지금을 뜻하는 'money'를 변수로 선언하고 값을 '500'이라 한다.
두부의 원가를 뜻하는 'tofuPrice'를 변수로 선언하고 값을 '300'이라 한다.
"오는 길에 두부 사왔어요!" 라는 문구를 'document.write()'를 사용해 출력하여 마무리한다.
문제 .2
나는 500원의 돈이 있어서 300원짜리 두부를 사서 엄마한테 "오는 길에 두부 사왔는데 잔돈 얼마 받았다"라고 얘기했어 이때 필요한 변수는 무엇일까? (내 수중의 돈, 두부의 원가는 바뀔 수 있음) |
풀이
<script>
let money = 500; //소지금
let tofuPrice = 300; //두부의 가격
let change = (money - tofuPrice) //잔돈
document.write("오는 길에 두부 사왔는데 잔돈 " + change + "원 받았어!");
</script>
위 문제에서 요구하는 답은 문제 1의 답과 잔돈에 대한 변수다.
소지금('money')에 두부의 원가('tofuPrice')를 뺀 가격을 계산하여 변수 'change'에 저장한다.
'document.write()'에 'change'를 넣어 "오는 길에 두부를 사왔는데 잔돈 '200' 원 받았어!"를 출력한다.
문제 .3
나는 500원의 돈이 있어서 300원짜리 두부 n개를 사려고한다. (두부 개수 n는 prompt()로 입력받을 것) 내 수중의 돈이 구매하려는 값보다 많으면 "두부를 n개 샀고, 잔돈 얼마 남았다"라고 엄마한테 얘기하고 내 수중의 돈이 구매하려는 값보다 적으면 "돈이 부족해서 두부를 못 샀다" 라고 엄마한테 얘기할거야 이때 필요한 변수는 무엇일까? (내 수중의 돈, 두부의 원가, 두부 개수는 바뀔 수 있음) |
풀이
<script>
let money = 500; //소지금
let tofuPrice = 300; //두부의 가격
let tofuCount = parseInt(prompt("두부 몇 개 사올까?")); //'parseInt' 를 사용해야 문자열에서 정수로 변환됨.
let change = (money - tofuPrice * tofuCount) //잔돈
if(money >= tofuPrice * tofuCount) {
document.write("두부를 " + tofuCount + "개 샀고, 잔돈은 " + change + "원 남았어!");
} else {
document.write("돈이 부족해서 두부를 못 샀어..");
}
</script>
문제 .2에서 다룬것을 제외하고 문제 .3에서 요구하는 것은 두부의 갯수와 구매 가능여부를 따지는 if문의 사용을 요구한다.
우선 두부의 갯수를 뜻하는 변수 'tofuCount'를 선언하고 이 변수는 'parseInt(prompt());'의 값을 저장한다.
'prompt()'를 단일로 사용하면 숫자가 아닌 문자열로 저장되기 때문에 정수로 저장하게 하는 'parseInt()'를 씌워 사용했다.
이후 'change'의 계산식을 소지금('money') - 두부 가격('tofoPrice') x 두부 갯수('tofuCount')로 수정했다.
잔돈에 따른 두부의 구매 여부를 구분하기 위해 if문을 사용한다.
조건은 소지금('money')이 두부의 구매금액(tofuPrice * tofuCount) 보다 크거나 같을때 참이 된다.
두부의 구매금액이 300원이라 했을때 참이 되므로
'document.write()'를 사용해 "두부를 1개 샀고, 잔돈은 200원 남았어!"를 출력한다.
조건문이 거짓일 시에는 'document.write()'를 사용해 "돈이 부족해서 두부를 못 샀어."를 출력한다.
문제 .4
바빠서 두부 사올 시간이 안되어서 동생에게 심부름 시킬거야. 심부름값을 주고 구매하려는 두부 개수 n를 알려주면, 동생은 두부 몇개를 샀고, 잔돈이 얼마인지, 돈이 부족하면 부족해서 못 샀다고 알려줄거야. 이때 필요한 변수는 무엇이며, (심부름값, 두부의 원가, 두부 개수는 바뀔 수 있음) 이때 필요한 함수를 구현하세요. (호출도 필요) |
풀이
<script>
let money = parseInt(prompt("돈은 얼마나 줄까?")); //소지금
let tofuPrice = 100; //두부의 가격
let tofuCount = parseInt(prompt("두부 몇 개 사오라고 시키지?")); //두부의 갯수
function buyTofu(money, tofuPrice, tofuCount) {
let change = (money - tofuPrice * tofuCount) //잔돈
if(money >= tofuCount * tofuPrice) {
document.write("두부를 " + tofuCount + "개 샀고, 잔돈은 " + change + "원 남았어!");
} else {
document.write("돈이 부족해서 두부를 사지 못했어...")
}
};
buyTofu(money, tofuPrice, tofuCount);
</script>
이번 문제는 문제 .3 까지의 풀이를 함수로 구현하는 것이 조건이다.
두부의 가격('tofuPrice')과 두부의 갯수('tofuCount')는 전과 같이 선언하였고, 소지금('money')는 'parseInt(prompt());'을 저장하는 변수로 선언했다. 이로써 소지금을 문서에서 지정할 수 있게 되었다.
함수 'buyTofu'는 매개변수로 (money, tofuPrice, tofuCount)를 받는다.
함수 내부에는 잔돈('change')의 계산식이 있고, if문으로 두부의 구매 여부를 정하고 그에 따라 'document.write()'로 각각 다른 내용을 출력하게 했다.
'buyTofu'함수를 호출하여 인수 (money, tofuPrice, tofuCount)를 넘겨 주고 함수가 실행되며 결과가 출력된다.
'연습 > JS' 카테고리의 다른 글
JS - 탭 (0) | 2024.08.27 |
---|---|
JS - 슬라이드 (0) | 2024.08.26 |
JS - 배경 색상 변경 (0) | 2024.08.23 |
JS - 여행 준비물 검사 목록 (0) | 2024.08.21 |
JS - 조건문 "미로" (0) | 2024.08.20 |