Bibi's DevLog ๐ค๐
[์ธํ๋ฐ]Javascript์ ๋ฌธ - ๊ณ์ฐ๊ธฐ - ํจ์๋ก ์ฌ์น์ฐ์ฐ ๊ตฌํ ๋ณธ๋ฌธ
ํ๋ก๊ทธ๋๋ฐ/Javascript ์๋ฐ์คํฌ๋ฆฝํธ
[์ธํ๋ฐ]Javascript์ ๋ฌธ - ๊ณ์ฐ๊ธฐ - ํจ์๋ก ์ฌ์น์ฐ์ฐ ๊ตฌํ
๋น๋น bibi 2020. 10. 27. 15:11* ์ด ๊ธ์ ์ธํ๋ฐ์์ ์ ๊ณตํ๋ ํธ๋ ์ค๋์ ์ ๋ฃ ๊ฐ์ '์ฝ๊ณ ์์ฐ์ค๋ฝ๊ฒ ๋ฐฐ์๋ณด๋ Javascript ์ ๋ฌธ - ์ฝ๋์ค์ฟผ๋ ๋ง์คํฐ์ฆ ์ฝ์ค ๋ ๋ฒจ1'๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๊ฐ์ ๋ด์ฉ์ ๋ํด, ์ ๊ฐ ํ๊ธฐํ๊ณ ๊ตฌ๊ธ๋งํ ๋ด์ฉ์ด ์ ๋ฆฌ๋์ด ์์ต๋๋ค. ์ด๋ณด์ธ ์ ๊ฐ ์ดํดํ ๋๋ก ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ๋ถ์ ํํ ๋ด์ฉ์ด ์์ ์ ์์์ ๊ฐ์ํด ์ฃผ์๊ธธ ๋ฐ๋๋๋ค. ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๋ ์ธํ๋ฐ ์ธก ๋ต๋ณ์ ๋ฐ์ ์ ์ด ์์ผ๋(https://bibi6666667.tistory.com/37), ์ ์๊ถ์ ๋ฌธ์ ๊ฐ ๋๋ค๋ฉด ๋ณดํธ ๋ชจ๋(๋น๊ณต๊ฐ)๋ก ์ ํํ๊ฒ ์ต๋๋ค.
ํ์ต ๋ชฉํ
- ํจ์๋ฅผ ๊ฒฝํํ๋ค.
๋ฆฌํฉํ ๋ง : ํจ์๋ฅผ ์ด์ฉํด ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์ ๋ฆฌํ๋ ๊ฒ?
(๊ตฌ๊ธ๋ง)
๋ฆฌํฉํ ๋ง์ด๋
: ์ธ๋ถ๋์์ ๋ฐ๊พธ์ง ์์ผ๋ฉด์ ๋ด๋ถ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ.
์ํํธ์จ์ด ์์คํ ์ ๋ณด๋ค ์ดํดํ๊ธฐ ์ฝ๊ฒ, ์์ ํ๊ธฐ ์ฝ๊ฒ ๋ณ๊ฒฝํ๋ ํ๋ก์ธ์ค.
๋ฆฌํฉํ ๋ง์ ํตํด ๊ฐ๋ ์ฑ์ ๋์ด๊ณ , ์ ์ง๋ณด์๋ฅผ ํธํ๊ฒ ํ๋ค.
์๊ตฌ์ฌํญ
- ๋ฉ์ธ ํจ์, ์ฌ์ฉ์์ ๊ฐ์ ์ ๋ ฅํ๋ ํจ์, ์ถ๋ ฅํ๋ ํจ์ ๋ฑ ํจ์๋ก ์ฝ๋๋ฅผ ๋๋์ด ๊ตฌํํ๋ค.
- ์ฌ์ฉ์์ ๊ฐ์ ์ ๋ ฅํ๋ ๊ตฌํ์ ์ฒซ ๋ฒ์งธ ์ซ์ ๊ฐ, ์ฌ์น์ฐ์ฐ ๊ธฐํธ ๋ฐ quit, ๋ ๋ฒ์งธ ์ซ์ ๊ฐ ์ ๋ ฅ์ผ๋ก ๋๋๋ค.
ํํธ
- ๊ฐ ์๊ตฌ์ฌํญ์ ํด๋นํ๋ ํจ์๋ฅผ ํ๋์ฉ ์์ฑํ ํ ์ง๊ธ๊น์ง main() ํจ์์์ ๊ตฌํํ๋ ๋ก์ง์ ๊ฐ ํจ์๋ก ์ด๋ํ๋ค.
- ๋๋ต ๋ค์๊ณผ ๊ฐ์ ํจ์๋ค๋ก ๋๋ ์ ์๋ค.
fucntion getFirstValue()
function getSecondValue()
function getOperator()
function calculate()
function print()
function main()
๋ด๊ฐ ์ง ํจ์
(๋ฐ๋ณต๋ฌธ ์ ๋ต ์ฝ๋ ํ์ฉ)
-getValue(), calculate(), print(), main()์ผ๋ก ๋๋๋ ค๊ณ ํ๋๋ฐ
getValue()์ prompt๋ถ๋ถ์, calculate()์ while๋ฌธ ์์ชฝ ๊ณ์ฐ๋ถ๋ถ์ ๋ฃ์ผ๋ ค ํ๋
'์ค๊ฐ์ค๋ฅ'์ชฝ break;๋ฅผ ์ธ์ํ์ง ๋ชปํด์ ์ค๋ฅ๊ฐ ๋๋๋ผ. ๊ทธ๋์ ๊ทธ๋ฅ ๋ค์ ํฉ์ณค๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>๋ฌธ์์ด ๊ณ์ฐ๊ธฐ ๊ตฌํํ๊ธฐ</h1>
<div id="output">์ฌ๊ธฐ์ ๊ฒฐ๊ณผ๊ฐ ๋ค์ด๊ฐ๋๋ค.</div>
<script>
function getValue() {
var n1 = Number(prompt("์ฒซ ๋ฒ์งธ ์ซ์๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์."));
var op, n2;
var result = n1;// ์ฒ์ ๊ฒฐ๊ณผ๊ฐ์ ํ ๋ฒ๋ง n1์ ๋ฃ์ด while๋ฐ๋ณต๋ฌธ ํ์ฉํ๊ธฐ.
var n = 2;
while (true) { // ๋ฌดํ๋ฃจํ
op = prompt("์ฐ์ฐ์๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์. q๋ฅผ ์
๋ ฅํ๋ฉด ์ข
๋ฃ๋ฉ๋๋ค.")
if (op === 'q') {
break;// break๋ ๋ฐ๋ณต๋ฌธ(while) ์ ์ฒด๋ฅผ ๋น ์ ธ๋๊ฐ๋ค.
}
n2 = Number(prompt(n + "๋ฒ์งธ ์ซ์๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์."));
if (op === "+") {
result += n2;
} else if (op === "-") {
result -= n2;
} else if (op === "*") {
result *= n2;
} else if (op === "/") {
result /= n2;
} else {
result = "์ค๊ฐ์ค๋ฅ";
break;
}
n++;
}
print(result);
}
function print(result) {
document.getElementById("output").innerHTML = "์ต์ข
๊ฒฐ๊ณผ๊ฐ์" + result + "์
๋๋ค.";
}
function main() {
getValue();
}
main();
</script>
</body>
</html>
ํด์ค
-'ํํธ'์ ์๋ ๋ชจ๋ ํจ์๋ค๋ก ์ฝ๋๋ฅผ ๋๋๋ค.
- ๊ฐ ํจ์์ return์ ์ฌ์ฉํ๋ค.
- ๋ฐ๋ณต๋ฌธ์ ์ค๋ฅ๊ฐ ๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ์ฌ๋ฌ ๋ฒ ์ฌ์ฉํ๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>๋ฌธ์์ด ๊ณ์ฐ๊ธฐ ๊ตฌํํ๊ธฐ</h1>
<div id="output">์ฌ๊ธฐ์ ๊ฒฐ๊ณผ๊ฐ ๋ค์ด๊ฐ๋๋ค.</div>
<script>
/*
fucntion getFirstValue()
function getSecondValue()
function getOperator()
function calculate()
function print()
function main()*/
function getFirstValue() {
var n1 = Number(prompt("์ฒซ ๋ฒ์งธ ์ซ์๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์."));
return n1;
}
var n = 2;
function getSecondValue() {
var n2 = Number(prompt(n + "๋ฒ์งธ ์ซ์๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์."));
n++;
return n2;
}
function getOperator() {
while (true) {
var op = prompt("์ฐ์ฐ์๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์.");
if (op === "+" || op === "-" || op === "*" || op === "/"
|| op === "q") {
break;
} else { // ์ฌ์น์ฐ์ฐ ์ธ์ ๊ฐ์ ๋ฃ์ผ๋ฉด..
alert("์ฌ๋ฐ๋ฅธ ์ฐ์ฐ์๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์.")
}
}
return op;
}
function calculate(first, second, op) {
var ret;
switch (op) {
case "+":
ret = first + second;
break;
case "-":
ret = first - second;
break;
case "*":
ret = first * second;
break;
case "/":
ret = first / second;
break;
}
return ret;
}
function print(value) {
return "์ต์ข
๊ฒฐ๊ณผ๊ฐ์ " + value + "์
๋๋ค.";
}
function main() {
var result = getFirstValue();
while(true) {
var op = getOperator();
if (op === "q") {
break;
}
var num = getSecondValue();
result = calculate(result,num,op);
}
var output = document.getElementById("output");
output.innerHTML = print(result);
}
main();
</script>
</body>
</html>