Bibi's DevLog ๐ค๐
[์ธํ๋ฐ] Javascript - ๊ตฌ๊ตฌ๋จ ์ถ๊ฐ ๋ฏธ์ , ํ์ต ๋ง๋ฌด๋ฆฌ ์กฐ์ธ (์ค์ต-๋์ ํ์ด ๊ณต์ ) ๊ตฌ๊ตฌ๋จ ์์ฉ๋ฒ์ : xy๋จ ์ถ๋ ฅํ๊ธฐ ๋ณธ๋ฌธ
ํ๋ก๊ทธ๋๋ฐ/Javascript ์๋ฐ์คํฌ๋ฆฝํธ
[์ธํ๋ฐ] Javascript - ๊ตฌ๊ตฌ๋จ ์ถ๊ฐ ๋ฏธ์ , ํ์ต ๋ง๋ฌด๋ฆฌ ์กฐ์ธ (์ค์ต-๋์ ํ์ด ๊ณต์ ) ๊ตฌ๊ตฌ๋จ ์์ฉ๋ฒ์ : xy๋จ ์ถ๋ ฅํ๊ธฐ
๋น๋น bibi 2020. 10. 19. 16:35* ์ด ๊ธ์ ์ธํ๋ฐ์์ ์ ๊ณตํ๋ ํธ๋ ์ค๋์ ์ ๋ฃ ๊ฐ์ '์ฝ๊ณ ์์ฐ์ค๋ฝ๊ฒ ๋ฐฐ์๋ณด๋ Javascript ์ ๋ฌธ - ์ฝ๋์ค์ฟผ๋ ๋ง์คํฐ์ฆ ์ฝ์ค ๋ ๋ฒจ1'๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๊ฐ์ ๋ด์ฉ์ ๋ํด, ์ ๊ฐ ํ๊ธฐํ๊ณ ๊ตฌ๊ธ๋งํ ๋ด์ฉ์ด ์ ๋ฆฌ๋์ด ์์ต๋๋ค. ์ด๋ณด์ธ ์ ๊ฐ ์ดํดํ ๋๋ก ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ๋ถ์ ํํ ๋ด์ฉ์ด ์์ ์ ์์์ ๊ฐ์ํด ์ฃผ์๊ธธ ๋ฐ๋๋๋ค. ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๋ ์ธํ๋ฐ ์ธก ๋ต๋ณ์ ๋ฐ์ ์ ์ด ์์ผ๋(https://bibi6666667.tistory.com/37), ์ ์๊ถ์ ๋ฌธ์ ๊ฐ ๋๋ค๋ฉด ๋ณดํธ ๋ชจ๋(๋น๊ณต๊ฐ)๋ก ์ ํํ๊ฒ ์ต๋๋ค.
ํ์ต ๋ชฉํ
- ์ง๊ธ๊น์ง ํ์ตํ ๋ด์ฉ์ ํ์ฉํด ํ ๋จ๊ณ ๋ ๋์ด๋๊ฐ ์๋ ๋ฌธ์ ๋ฅผ ๊ตฌํํ๋ ๊ฒฝํ์ ํ๋ค.
์ต์ข ์๊ตฌ์ฌํญ
- ์ฐธ๊ณ ์๋ฃ, ๊ต์ฌ, ์ธํฐ๋ท์ ๋์ ์์ด ๋ฐฑ์ง ์ํ์์ ๊ตฌ๊ตฌ๋จ์ ๊ตฌํํ๋ค.
- ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ ๋ฐ๋ผ ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ๊ตฌ๊ตฌ๋จ์ ๊ณ์ฐํด ์ถ๋ ฅํ๋ค.
- ์๋ฅผ ๋ค์ด ์ฌ์ฉ์๊ฐ "8,7"๊ณผ ๊ฐ์ ๋ฌธ์์ด์ ์ ๋ ฅํ๋ฉด ํ์น ๋จ์ ๊ตฌํํ๋ค. ํ์น ๋จ์ 2 * 1 ... 2 * 7, 3 * 1 ... 3 * 7, ... , 8 * 1 ... 8 * 7 ๊น์ง ๊ตฌํํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
- html, css, DOM ๋ฑ์ ๋ฐฐ์์ ์กฐ๊ธ ๋ ์์ ํ๋ฉด์ ๋ง๋ค์ด ๋ณธ๋ค.
ํํธ
- ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ ๋ฌธ์์ด(string)๋ก ๋ฐ๋๋ค.
- ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ ์ผํ(,)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํ๋ค.
- ์ผํ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํ ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํ๋ค.
- 2์ค์ผ๋ก ๋ฐ๋ณต๋ฌธ(for ๋๋ while)์ ์คํํด ๊ณฑ์ ๊ฒฐ๊ณผ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.
ํ์ต ๋ง๋ฌด๋ฆฌ ์กฐ์ธ
- ์ง๊ธ๊น์ง ๊ณผ์ ์์ ์์ ์๋ ๋ถ๋ถ, ์ดํด๊ฐ ๋์ง ์๋ ๋ถ๋ถ์ ์ ๋ฆฌํ๊ณ ํด๋น ๋ถ๋ถ์ ์ง์ค ์ฐ์ตํ๋ค.
- ์ ์ฒด ๊ณผ์ ์ ๋ฐ๋ณต ์ฐ์ตํ๋ค. ๋จ, ๋ฐ๋ณต ์ฐ์ตํ ๋ ํํธ๋ฅผ ์กฐ๊ธ์ฉ ์ค์ฌ๊ฐ๋ฉด์ ์ฐ์ตํ๋ค.
- ๊ฐ ๋จ๊ณ ๋ด์ฉ ์ค ์์ ์ด ์ดํดํ ๋ถ๋ถ๊ณผ ์ดํดํ์ง ๋ชปํ ๋ถ๋ถ์ ์ ๋ฆฌํ๋ค. ์ดํดํ์ง ๋ชปํ ๋ถ๋ถ์ ๋ค๋ฅธ ๋ฏธ์ ์ ๊ตฌํํ๋ฉด์ ์ดํดํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๋ค.
- ์๋กญ๊ฒ ๋ฑ์ฅํ๋ ์ฉ์ด๋ค์ ๋ํด ์์ ์ด ์ดํดํ ์์ค์ผ๋ก ์ ๋ฆฌํ๋ ์ฐ์ต์ ํ๋ค. ๋ฐ๋์ 100% ์ดํดํ์ง ๋ชปํด๋ ๊ด์ฐฎ๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋(๋์ ํ์ด)
- ๊ตฌํํ๋ ๋ฐ๋ ์ฑ๊ณต!
- ์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๊ฐ์ "์ซ์,์ซ์" ๋ก ๋ฐ์์ splitํ๋ ๊ฑด ์คํจํ๋ค. (split ์ฌ์ฉ๋ฐฉ๋ฒ ๊น๋จน์..)
๋์ prompt()๋ฅผ ์ฌ์ฉํ๋ค.
- ์ฐธ๊ณ ์๋ฃ, ๊ตฌ๊ธ๋ง ์์ด ์์ ํ ๋ด ํ๋ง์ผ๋ก ๊ฐ๋ฐํ๋ ์ฐ์ต์ ๋ง์ด ํด์ผ๊ฒ ๋ค.
-> 'xy๋จ ์ถ๋ ฅํ๊ธฐ' ๋ฒํผ์ ๋๋ฅด๋ฉด ํ์ ์ฐฝ์ด ๋จ๊ณ , ์ฐจ๋ก๋ก 2~9์ฌ์ด ์์ฐ์๋ฅผ ์ ๋ ฅํ๋ฉด ๊ทธ์ ๋ง๋ xy๋จ์ ์ถ๋ ฅํด ์ค๋ค.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>xydan</title>
</head>
<body>
<h1>๊ตฌ๊ตฌ๋จ : ์ถ๊ฐ ๋ฏธ์
๋ฐ ๋ง๋ฌด๋ฆฌ</h1>
ํ์
์ฐฝ์ 2๋ถํฐ 9๊น์ง์ ์์ฐ์๋ฅผ ๋ ๋ฒ ์
๋ ฅํ๋ฉด, xy๋จ์ ์ถ๋ ฅํฉ๋๋ค.<br>
<button onclick="xydan.main()">xy๋จ ์ถ๋ ฅํ๊ธฐ!</button>
<script>
var xydan = {};
xydan.X = 0;
xydan.Y = 0;
xydan.ret = [];
// ๊ณ์ฐ : x*1, x*2 ... x*y ๊น์ง ๊ณ์ฐ.
xydan.calculate = function (x, y) { // 2๋ถํฐ y๊น์ง ๊ณฑ์
this.ret = [];
for (var i = 1; i <= y ; i++) {
var result = x * i;
this.ret.push(result);
}
return this.ret;
}
// ์ถ๋ ฅ
xydan.print = function (x, y) {
document.write("<h4>"+ x + "๋จ</h4>")
for (var i = 0; i < y; i++) {
document.write(x + "*" + (i+1) + "=" + this.ret[i] + "<br>");
}
}
// ๋ฉ์ธ : calculate,print๋ฅผ 2๋ถํฐ x๊น์ง ๋ฐ๋ณต
xydan.main = function () {
var x = this.X;
var y = this.Y;
x += Number(prompt("(2~9 ์ฌ์ด์ ์์ฐ์ ์
๋ ฅ) ์ด๋ค ์ซ์๋ก ๊ตฌ๊ตฌ๋จ์ ์ถ๋ ฅํ ๊น์?"));
y += Number(prompt("(2~9 ์ฌ์ด์ ์์ฐ์ ์
๋ ฅ) ๋ช ๋จ๊น์ง ๊ตฌ๊ตฌ๋จ์ ์ถ๋ ฅํ ๊น์?"));
document.write("<h2>" + x + y + "๋จ</h2>")
for (var i = 2; i <= x; i++) {
xydan.calculate(i, y);
xydan.print(i, y);
}
}
</script>
</body>
</html>