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>