JavaScript ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด - ์ ์ด๋ฌธ
์์ํ๋ฉด์
์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํฉ๋๋ค. ์ด๋ฒ์ ์ ์ด๋ฌธ์ ์์ ์ ํจ๊ป ๊ณต๋ถํฉ๋๋ค.
1. ์ ์ด๋ฌธ์ด๋?
- ์ ์ด๋ฌธ์ ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ์ ์ดํ ์ ์๋๋ก ๋์์ฃผ๋ ์คํ๋ฌธ์ ๋งํฉ๋๋ค.
- ์ ์ด๋ฌธ์ ์ธ ๊ฐ์ง๋ก ๋ถ๋ฅํ ์ ์์ต๋๋ค.
- '์กฐ๊ฑด ๋ง์กฑ ์ฌ๋ถ์ ๋ฐ๋ผ ์คํ๋ฌธ์ ์ ์ดํ ์ ์๋ ์กฐ๊ฑด๋ฌธ' -> if / else / else if
- '๋ณ์์ ์ผ์นํ๋ ๊ฒฝ์ฐ์ ๊ฐ์ ๋ฐ๋ผ ์คํ๋ฌธ์ ์ ์ดํ ์ ์๋ ์ ํ๋ฌธ' -> switch
- 'ํน์ ์คํ๋ฌธ์ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณต ์คํํ ์ ์๋๋ก ํ๋ ๋ฐ๋ณต๋ฌธ' -> while / for
2. ์กฐ๊ฑด๋ฌธ
(1) if ๋ฌธ
- if ๋ฌธ์ ์กฐ๊ฑด์์ ๋ง์กฑ(true)ํ ๊ฒฝ์ฐ์๋ง ์คํ๋ฌธ์ ์คํํฉ๋๋ค.
// ๊ธฐ๋ณธํ
if (์กฐ๊ฑด์) {
์คํ๋ฌธ;
}
(1) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>if ๋ฌธ</title>
<script type="text/javascript">
let exerciseTime = prompt("์ผ์ฃผ์ผ์ ๋ช ๋ถ ์ด๋ํ๋์?", "0");
if (exerciseTime >= 150) { // ์ผ์ฃผ์ผ์ 150๋ถ ์ด์์ผ ๊ฒฝ์ฐ์๋ง ์ถ๋ ฅ๋ฌธ์ ์คํํฉ๋๋ค
document.write("์ ํ๊ณ ๊ณ์ธ์!")
}
</script>
</head>
<body>
</body>
</html>
(2) else ๋ฌธ
- else ๋ฌธ์ ์กฐ๊ฑด์์ ๋ง์กฑ(true)ํ ๊ฒฝ์ฐ์ ๋ง์กฑํ์ง ์์์(false) ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์คํ๋๋ ์คํ๋ฌธ์ด ๋ฌ๋ผ์ง๋๋ค.
- ์ฆ, ๋ ๊ฐ์ง ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์ ์์ต๋๋ค.
// ๊ธฐ๋ณธํ
if (์กฐ๊ฑด์) {
์คํ๋ฌธ1;
} else {
์คํ๋ฌธ2;
}
(2) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>else ๋ฌธ</title>
<script type="text/javascript">
let exerciseTime = prompt("์ผ์ฃผ์ผ์ ๋ช ๋ถ ์ด๋ํ๋์?", "0");
if (exerciseTime >= 150) { // ์ผ์ฃผ์ผ์ 150๋ถ ์ด์์ผ ๊ฒฝ์ฐ์๋ง ์ถ๋ ฅ๋ฌธ์ ์คํํฉ๋๋ค
document.write("์ ํ๊ณ ๊ณ์ธ์!")
} else { // 150๋ถ ๋ฏธ๋ง์ผ ๊ฒฝ์ฐ ์คํํฉ๋๋ค
document.write("์ธ๊ณ๋ณด๊ฑด๊ธฐ๊ตฌ(WHO)๋ ์ฑ์ธ๋ค์๊ฒ ์ผ์ฃผ์ผ์ 150๋ถ ์ด์ ์ด๋ํ ๊ฒ์ ๊ถ์ฅํ๊ณ ์์ต๋๋ค!")
}
</script>
</head>
<body>
</body>
</html>
(3) else if ๋ฌธ
- else if ๋ฌธ์ ๋ ๊ฐ์ง ์ด์์ ์กฐ๊ฑด์์ด ์์ต๋๋ค.
- ๊ทธ ๋ฐ์ ์ ํด๋์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์์ ๋์ ์คํ๋ฌธ ๋ํ ์กด์ฌํฉ๋๋ค.
// ๊ธฐ๋ณธํ
if (์กฐ๊ฑด์1) {
์คํ๋ฌธ1;
} else if (์กฐ๊ฑด์2) {
์คํ๋ฌธ2;
} else if (์กฐ๊ฑด์3) {
์คํ๋ฌธ3;
} else {
์คํ๋ฌธ4;
}
(3) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>else if ๋ฌธ</title>
<script type="text/javascript">
let exerciseTime = prompt("์ผ์ฃผ์ผ์ ๋ช ๋ถ ์ด๋ํ๋์?", "0");
if (exerciseTime >= 2940) { // ์ผ์ฃผ์ผ์ 2940๋ถ ์ด์์ผ ๊ฒฝ์ฐ (์ฃผ 7์ผ 7์๊ฐ ์ด์ ใทใท)
document.write("์ ์์ด์๊ตฐ์! ํญ์ ์ข์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ๋ฅด๊ธธ ๋ฐ๋๋๋ค!")
} else if (exerciseTime < 2940 && exerciseTime >= 150) { // 150๋ถ ์ด์ ~ 2940๋ถ ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ
document.write("์ด๋์ ์ ์ฑ๊ธฐ์๊ณ ์๊ตฐ์! ๊ฑด๊ฐ์ด ์ต๊ณ ์
๋๋ค!")
} else if (exerciseTime < 150 && exerciseTime >= 1) { // 1๋ถ ์ด์ ~ 150๋ถ ๋ฏธ๋ง
document.write("์ด๋๋์ ์กฐ๊ธ ๋ ๋๋ ค๋ณผ๊น์? ์์์ 10๋ถ์ฉ๋ง ๋ ๋๋ฆฌ๊ธฐ๋ก!")
} else {
document.write("?? : ์ด๊ฑด ์ข..")
}
</script>
</head>
<body>
</body>
</html>
(4) ์ค์ฒฉ if ๋ฌธ
- ์ค์ฒฉ if ๋ฌธ์ if ๋ฌธ ๋ด๋ถ์ if ๋ฌธ์ด ์ค์ฒฉ๋์ด ์๋ ๊ฒ์ ๋งํฉ๋๋ค.
// ๊ธฐ๋ณธํ
if (์กฐ๊ฑด์1) {
if (์กฐ๊ฑด์2) {
์คํ๋ฌธ;
}
}
(4) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>์ค์ฒฉ if๋ฌธ</title>
<script type="text/javascript">
let id = "id"; // ์์ด๋
let pwd = "12345a"; // ๋น๋ฐ๋ฒํธ
// ๋ฐฉ๋ฌธ์์๊ฒ ์์ด๋๋ฅผ ์
๋ ฅ๋ฐ์ต๋๋ค
let user_id = prompt("์์ด๋๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.", "");
// ๋ฐฉ๋ฌธ์์๊ฒ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅ๋ฐ์ต๋๋ค.
let user_pwd = prompt("๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.", "");
if (id == user_id) { // ์์ด๋๊ฐ ์ผ์นํ ๊ฒฝ์ฐ
if (pwd == user_pwd) { // ์์ด๋๊ฐ ์ผ์นํ๋ฉด์ ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ ๊ฒฝ์ฐ
document.write(user_id + "๋ ๋ฐ๊ฐ์ต๋๋ค!")
} else { // ์์ด๋๋ ์ผ์นํ์ง๋ง ๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ ๊ฒฝ์ฐ
alert("๋น๋ฐ๋ฒํธ๊ฐ ์ผ์นํ์ง ์์ต๋๋ค. ๋ค์ ์
๋ ฅํด์ฃผ์ธ์.")
location.reload(); // ๋ธ๋ผ์ฐ์ ์๋ก ๊ณ ์นจ
}
} else { // ์์ด๋๊ฐ ์ผ์นํ์ง ์์ ๊ฒฝ์ฐ
alert("์์ด๋๊ฐ ์ผ์นํ์ง ์์ต๋๋ค. ๋ค์ ์
๋ ฅํด์ฃผ์ธ์.");
location.reload();
}
</script>
</head>
<body>
</body>
</html>
3. ์ ํ๋ฌธ
(1) switch ๋ฌธ
- switch ๋ฌธ์ ์ด๋ค ๋ณ์์ ๊ฐ์ ๋ฐ๋ผ์ ๋ฌธ์ฅ์ ์คํํ ์ ์๋๋ก ํ๋ ์ ์ด๋ฌธ์ ๋๋ค.
- if ๋ฌธ๊ณผ ๋น์ทํ์ง๋ง switch ๋ฌธ์ ๋ชจ๋ ์กฐ๊ฑด์ ํ์ธํ์ง ์๊ณ , ์กฐ๊ฑด์ ๋ง๊ฒ๋๋ฉด break ๋ฅผ ํตํด ์ฆ์ ์กฐ๊ฑด๋ฌธ์ฅ์์ ๋ฒ์ด๋ ์ ์์ต๋๋ค.
// ๊ธฐ๋ณธํ
let ๋ณ์ = ์ด๊ธฐ ๊ฐ;
switch (๋ณ์) {
case ๊ฐ1:
์คํ๋ฌธ1;
break;
case ๊ฐ2:
์คํ๋ฌธ2;
break;
default:
์คํ๋ฌธ3;
}
(1) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>์ค์์น ๋ฌธ</title>
<script type="text/javascript">
let site = prompt("๋ค์ด๋ฒ, ๋ค์, ๊ตฌ๊ธ ์ค ์ฆ๊ฒจ ์ฌ์ฉํ๋ ํฌํธ ์ฌ์ดํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.", "");
switch (site) {
case "๋ค์ด๋ฒ":
document.write("๋ค์ด๋ฒ๋ฅผ ์ ํํ์
จ๊ตฐ์!"); // "๋ค์ด๋ฒ" ๋ฅผ ์
๋ ฅํ ๊ฒฝ์ฐ
break;
case "๋ค์":
document.write("๋ค์์ ์ ํํ์
จ๊ตฐ์!"); // "๋ค์" ์ ์
๋ ฅํ ๊ฒฝ์ฐ
break;
case "๊ตฌ๊ธ":
document.write("๊ตฌ๊ธ์ ์ ํํ์
จ๊ตฐ์!"); // "๊ตฌ๊ธ" ์ ์
๋ ฅํ ๊ฒฝ์ฐ
break;
// ์ผ์นํ๋ ๊ฐ์ด ์์ ๊ฒฝ์ฐ
default:
alert("๋ณด๊ธฐ ์ค์ ์๋ ์ฌ์ดํธ์
๋๋ค.");
location.reload();
}
</script>
</head>
<body>
</body>
</html>
4. ๋ฐ๋ณต๋ฌธ
(1) while ๋ฌธ
- while ๋ฌธ์ ์กฐ๊ฑด์์ด true ์ผ ๊ฒฝ์ฐ ๊ณ์ ๋ฐ๋ณตํ๋ ๋ฐ๋ณต๋ฌธ์ ๋๋ค.
// ๊ธฐ๋ณธํ
let ๋ณ์ = ์ด๊ธฐ ๊ฐ;
while (์กฐ๊ฑด์) {
์คํ๋ฌธ;
์ฆ๊ฐ์;
}
(1) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>while ๋ฌธ</title>
<script type="text/javascript">
let i = 1;
while (i <= 10) {
document.write("๋ฐ๋ณต" + i, "<br/>");
i++;
}
</script>
</head>
<body>
</body>
</html>
(2) do while ๋ฌธ
- while ๋ฌธ์ ๊ฒฝ์ฐ์๋ ์กฐ๊ฑด์์ ๋ง์กฑ ์ฌ๋ถ๋ฅผ ๋จผ์ ๊ฒ์ฌํ ํ, ์ค๊ดํธ์ ์๋ ์คํ๋ฌธ์ ์คํ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
- ๋ฐ๋ฉด do while ๋ฌธ์ ๋ฐ๋์ ํ ๋ฒ์ ์คํ๋ฌธ์ ์คํํ๊ณ , ์กฐ๊ฑด์์ ๊ฒ์ฌํฉ๋๋ค.
// ๊ธฐ๋ณธํ
let ๋ณ์ = ์ด๊ธฐ ๊ฐ;
do {
์คํ๋ฌธ;
์ฆ๊ฐ์;
} while (์กฐ๊ฑด์)
(2) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>do while ๋ฌธ</title>
<script type="text/javascript">
let result = '';
let i = 0;
do {
i += 1;
result = result + i;
} while (i < 5);
document.write(result); // ๊ฒฐ๊ณผ๋ 12345 (ํ ๋ฒ์ ๋ฌด์กฐ๊ฑด ์คํํ๊ธฐ ๋๋ฌธ์
๋๋ค)
</script>
</head>
<body>
</body>
</html>
(3) for ๋ฌธ
- for ๋ฌธ ๋ํ while ๋ฌธ๊ณผ ๊ฐ์ด ๋ฐ๋ณต๋ฌธ์ ๋๋ค. ์กฐ๊ฑด์์ ๋ง์กฑํ ๋ ๊น์ง ํน์ ์คํ๋ฌธ์ ๋ฐ๋ณตํ์ฌ ์คํํฉ๋๋ค.
// ๊ธฐ๋ณธํ
for (์ด๊ธฐ ๊ฐ; ์กฐ๊ฑด์; ์ฆ๊ฐ์) {
์คํ๋ฌธ;
}
(3) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>for ๋ฌธ</title>
<script type="text/javascript">
for (let i = 1; i <= 10; i++) { // ์ค๊ดํธ ๋ด์ ์คํ๋ฌธ์ 10๋ฒ ๋ฐ๋ณตํฉ๋๋ค
// ๋ณ์ i๊ฐ 1์ฉ ์ฆ๊ฐ๋์ด 10๋ฒ ์ถ๋ ฅ๋ฉ๋๋ค
document.write("๋ฐ๋ณต" + i, "<br/>");
}
</script>
</head>
<body>
</body>
</html>
(4) break ๋ฌธ
- ๋ฐ๋ณต๋ฌธ์ธ while ๋ฌธ ๋๋ for ๋ฌธ์์ break ๋ฌธ์ ์คํํ๋ฉด ์กฐ๊ฑด์๊ณผ ์๊ด์์ด ๊ฐ์ ๋ก ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃ ์ํต๋๋ค.
// ๊ธฐ๋ณธํ
for (์ด๊ธฐ ๊ฐ; ์กฐ๊ฑด์; ์ฆ๊ฐ์) {
break;
์คํ๋ฌธ;
}
while (์กฐ๊ฑด์) {
break;
์คํ๋ฌธ;
์ฆ๊ฐ์;
}
(4) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>break</title>
<script type="text/javascript">
for (let i = 1; i <= 10; i++) {
if (i == 6) {
break;
}
document.write(i, "<br/>")
}
</script>
</head>
<body>
</body>
</html>
(5) continue ๋ฌธ
- ๋ฐ๋ณต๋ฌธ์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
- while ๋ฌธ์ ์ฌ์ฉํ์ ๊ฒฝ์ฐ continue ๋ฌธ ๋ค์์ ์คํ๋ฌธ์ ๋ฌด์ํ๊ณ ๋ฐ๋ก ์กฐ๊ฑด์์ผ๋ก ์ด๋ํ์ฌ ์กฐ๊ฑด ๊ฒ์ฌ๋ฅผ ์ํํฉ๋๋ค.
- break ์ ์ ์ฌํ์ง๋ง, break ๋ ๋ฐ๋ณต๋ฌธ ์์ฒด๋ฅผ ํ์ถํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๊ณ continue ๋ ๋ฐ๋ณต๋ฌธ ๋ด์ ํน์ ์กฐ๊ฑด ํ ๋ถ๋ถ๋ง์ ์ ์ธํ๊ณ ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
// ๊ธฐ๋ณธํ
for (์ด๊ธฐ ๊ฐ; ์กฐ๊ฑด์; ์ฆ๊ฐ์) {
continue; // ๋ค์์ ์ค๋ ์คํ๋ฌธ์ ๋ฌด์ํ๊ณ ๋ฐ๋ก ์ฆ๊ฐ์์ผ๋ก ์ด๋ํฉ๋๋ค
์คํ๋ฌธ;
}
while (์กฐ๊ฑด์) {
์ฆ๊ฐ์;
continue;
์คํ๋ฌธ;
}
(5) ์์
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>continue ๋ฌธ</title>
<script type="text/javascript">
for (let i = 1; i <= 10; i++) { // ๋ณ์ i์ ๊ฐ์ด 10์ด ๋ ๋๊น์ง ๋ฐ๋ณต๋ฌธ์ ์คํํฉ๋๋ค
if (i % 2 == 0) {
continue; // ๋ณ์ i์ ๊ฐ์ด 2์ ๋ฐฐ์์ผ ๊ฒฝ์ฐ์๋ง ์คํํฉ๋๋ค
}
// ๋ณ์ i์ ๊ฐ์ด 2์ ๋ฐฐ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ง ์ถ๋ ฅ๋ฌธ์ ์คํํฉ๋๋ค
document.write(i, "<br/>")
}
</script>
</head>
<body>
</body>
</html>
(6) ์ค์ฒฉ for ๋ฌธ
- ์ค์ฒฉ if ๋ฌธ๊ณผ ๊ฐ์ด for ๋ฌธ ๋ด๋ถ์ for ๋ฌธ์ ์ฌ์ฉํ ๊ฒ์ ์ค์ฒฉ for ๋ฌธ์ด๋ผ๊ณ ํฉ๋๋ค.
// ๊ธฐ๋ณธํ
for (์ด๊ธฐ ๊ฐ; ์กฐ๊ฑด์; ์ฆ๊ฐ์) { // ๋ฐ๊นฅ์ชฝ for ๋ฌธ
for (์ด๊ธฐ ๊ฐ; ์กฐ๊ฑด์; ์ฆ๊ฐ์) { // ์์ชฝ for ๋ฌธ
์คํ๋ฌธ;
}
}
(6) ์์ - ๊ตฌ๊ตฌ๋จ
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>๊ตฌ๊ตฌ๋จ ๋ง๋ค๊ธฐ</title>
<script type="text/javascript">
for (let i = 2; i <= 9; i++) {
document.write("<h1>" + i + "๋จ</h1>") // 2๋จ๋ถํฐ 9๋จ๊น์ง ๋จ์ ์ถ๋ ฅ
for (let j = 1; j <= 9; j++){
document.write(i + "x" + j + "=" + i*j + "<br/>")
}
}
</script>
</head>
<body>
</body>
</html>
๋ง๋ฌด๋ฆฌํ๋ฉฐ
์ด๋ ๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ์ด๋ฌธ์ ๊ณต๋ถํด ๋ณด์์ต๋๋ค.
์ ์ด๋ฌธ์ ๋์ ์๋ฆฌ๊ฐ ์ฒ์์ ๋ค์ ์์ํ์ค ์ ์์ง๋ง, ๊ณ์ ์ ํ์๋ค๋ณด๋ฉด ์ต์ํด์ง์ค ๊ฒ์ ๋๋ค :-)
๋๊ธ๊ณผ ๊ณต๊ฐ์ ํญ์ ํ์์ ๋๋ค!