๐ ๋ฌธ์
๋ ์(num1, num2)๋ฅผ ์ ๋ ฅ๋ฐ์, num1์ num2๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
โ ๏ธ ์ฃผ์์ฌํญ
- ๋๋์
(/), ๋๋จธ์ง(%) ์ฐ์ฐ์ ์ฌ์ฉ์ ๊ธ์ง๋ฉ๋๋ค.
- 0์ ์ด๋ค ์๋ก ๋๋์ด๋ ๋๋จธ์ง๊ฐ 0์
๋๋ค.
- ์ด๋ค ์๋ 0์ผ๋ก ๋๋ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ 'Error: cannot divide by zero'๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
โ๐ป ๋ด ํ์ด: for๋ฌธ ์ฌ์ฉ
function modulo(num1, num2) {
let result = 0;
// ๋ง์ฝ num2๊ฐ 0์ด๋ฉด
if (num2 === 0) {
// 'Error~'๋ฅผ ๋ฆฌํด
return 'Error: cannot divide by zero'
}
// num2 * i = num1
for (let i = 0; i < num1; i++) {
// num2๊ณผ i๋ฅผ ๊ณฑํ ๊ฐ์ด num1๋ณด๋ค ์์ ๋๊น์ง๋ง ๋ฐ๋ณต
if(num1 > num2 * i) {
// ๊ฒฐ๊ณผ๊ฐ์ num1์์ num2์ i๋ฅผ ๊ณฑํ ๊ฐ์ ๋นผ์ฃผ๋ฉด ๋๋จธ์ง๊ฐ ๋์ด (ex. 25-4*6 = ๋๋จธ์ง 1)
result = num1 - num2 * i;
// num1๊ณผ num2๊ฐ ๊ฐ๋ค๋ฉด
} else if (num1 === num2) {
// ๋๋จธ์ง ์์ด 0์ผ๋ก ๋๋์ด ๋จ์ด์ง
return 0;
}
}
// ๋๋จธ์ง ๊ฐ์ ๋ฆฌํด
return result;
}
โ๐ป ๋ ๋ค๋ฅธ ํ์ด: while๋ฌธ ์ฌ์ฉ
function modulo(num1, num2) {
// ๋ง์ฝ num2๊ฐ 0์ด๋ฉด
if (num2 === 0) {
// 'Error~'๋ฅผ ๋ฆฌํด
return 'Error: cannot divide by zero';
}
// num1๊ฐ num2๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๋๊น์ง๋ง ์คํ
while (num1 >= num2) {
// num1์์ num2๋ฅผ ๋บ num1๊ฐ์ผ๋ก ๋ค์ ๋ฐ๋ณต
num1 = num1 - num2;
// ex. 1๋ฒ์งธ ๋ฐ๋ณต: 15 = 25 - 10
// ex. 2๋ฒ์งธ ๋ฐ๋ณต: 5 = 15 - 10 -> ๋
}
// num1๊ฐ num2๋ณด๋ค ์์ผ๋ฉด ํด๋น num1 ๊ฐ (ex. 5)์ ๋ฆฌํด
return num1;
}
๐ก ์์๋๋ฉด ์ข์ ๊ฐ๋
While๋ฌธ
while๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ผ ๋ ์คํ๋๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก, ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ด๋ผ๋ฉด while๋ฌธ ์์ ๋ฌธ์ฅ๋ค์ด ์คํ๋๋ฉฐ ๊ฑฐ์ง์ด๋ผ๋ฉด while๋ฌธ ์ดํ๋ก ๋์ด๊ฐ๋ค. ๋ฐ๋ณต๋ฌธ ์์ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์ฅ์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ์ค๊ดํธ { } ๋ฅผ ํตํด ๋ฌธ์ฅ๋ค์ ํ๋๋ก ๋ฌถ์ด์ผ ํ๋ค. (์ถ์ฒ: mdn)
var n = 0;
var x = 0;
while (n < 3) { // n์ด 3๋ณด๋ค ์์ ๋๊น์ง ๋ฐ๋ณต
n++;
x += n;
}
๐ฉ๐ป๐ป ๋ฐฐ์ด ์
for๋ฌธ์ด ์ต์ํด์ for๋ฌธ์ผ๋ก ํ์์ผ๋, while๋ฌธ์ ํ์ฉํ๋ฉด ์ฝ๋ ๊ธธ์ด๋ ์งง์๋ฐ๋ค๊ฐ (ํนํ num1๊ณผ num2์ ์ ์ฐจ์ด๊ฐ ํฌ๋ฉด ํด์๋ก) ๋ฐ๋ณต ํ์๋ฅผ ์ค์ผ ์ ์๊ธฐ์ ํด๋น ๋ฌธ์ ์์๋ while๋ฌธ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ข๋ค.
๋๊ธ