Q1. 위의 타이머 코드는 10초 타이머 기능만 제공합니다. 원하는 시간만큼 타이머를 설정할 수 있다면 얼마나 좋을까요? 예를 들어, '@timer 5'라고 입력하면 1초 간격으로 카운트다운한 뒤
5초가 되었다는 메시지를 전송합니다.
사용자가 타이머 시간을 설정할 수 있도록 코드를 수정해보세요.
for 문:
const bot = BotManager.getCurrentBot();function onCommand(msg) { if (msg.command === "timer") { let sec = Number(msg.args[0]); // 사용자가 입력한 시간(초)를 숫자로 형변환 for (let i = sec; i > 0; i--) { msg.reply(`카운트다운: ${i}초`); java.lang.Thread.sleep(1000); } msg.reply(`${sec}초가 지났습니다!`); }}bot.setCommandPrefix("@");bot.addListener(Event.COMMAND, onCommand);
while 문:
const bot = BotManager.getCurrentBot();function onCommand(msg) { if (msg.command === "timer") { let sec = Number(msg.args[0]); // 사용자가 입력한 시간(초)를 숫자로 형변환 let i = sec; while (i > 0) { msg.reply(`카운트다운: ${i}초`); java.lang.Thread.sleep(1000); i--; } msg.reply(`${sec}초가 지났습니다!`); }}bot.setCommandPrefix("@");bot.addListener(Event.COMMAND, onCommand);
Q2. 당신은 초등학생 동생을 위해 구구단을 출력해주는 카카오톡봇을 만들고자 합니다. 예를 들어, '@dan 2'를 입력하면 아래와 같이 출력합니다.
const bot = BotManager.getCurrentBot();function onCommand(msg) { if (msg.command === "dan") { let dan = Number(msg.args[0]); let result = `=== ${dan}단 ===`; for (let i = 1; i < 10; i++) { result += `\n${dan} * ${i} = ${dan * i}`; } msg.reply(result); }}bot.setCommandPrefix("@");bot.addListener(Event.COMMAND, onCommand);
while 문:
const bot = BotManager.getCurrentBot();function onCommand(msg) { if (msg.command === "dan") { let dan = Number(msg.args[0]); let result = `=== ${dan}단 ===`; let i = 1; while (i < 10) { result += `\n${dan} * ${i} = ${dan * i}`; i++; } msg.reply(result); }}bot.setCommandPrefix("@");bot.addListener(Event.COMMAND, onCommand);
Q3. 여러분은 동생을 위해 열심히 Q2.를 해결했습니다. 하지만 동생은 2단부터 9단까지 모두 보여줬으면 좋겠다고 합니다. '@gugudan'을 입력하면 2단부터 9단까지 출력하도록 수정해보세요.
단마다 하나의 메시지로 출력하세요. (힌트: 반복문 안에 반복문을 사용하는 것도 가능합니다.)
for 문:
const bot = BotManager.getCurrentBot();function onCommand(msg) { if (msg.command === "gugudan") { for (let i = 2; i < 10; i++) { // 2단부터 9단까지 반복합니다. let result = `=== ${i}단 ===`; for (let j = 1; j < 10; j++) { result += `\n${i} * ${j} = ${i * j}`; } msg.reply(result); } }}bot.setCommandPrefix("@");bot.addListener(Event.COMMAND, onCommand);
while 문:
const bot = BotManager.getCurrentBot();function onCommand(msg) { if (msg.command === "gugudan") { let i = 2; while (i < 10) { // 2단부터 9단까지 반복합니다. let result = `=== ${i}단 ===`; let j = 1; while (j < 10) { result += `\n${i} * ${j} = ${i * j}`; j++; } msg.reply(result); i++; } }}bot.setCommandPrefix("@");bot.addListener(Event.COMMAND, onCommand);