이번 강좌에서는 자바스크립트에서의 제어문에 대해 알아보겠습니다.
우선 제어문이란 특정 조건에 맞을 때 특정 코드를 실행시키는 것을 말합니다.
- if(){} -
if문은 간단합니다. 소괄호 안의 내용이 true, 즉 참이라면 중괄호 안의 코드를 실행한 뒤 아랫줄로 넘어갑니다.
만약 소괄호 안의 내용이 false, 즉 거짓이라면 아무것도 실행하지 않고 그대로 아랫줄로 넘어갑니다.
예를 들어,
if( msg == "핑" ){
replier.reply("퐁");
}
이라고 한다면 msg, 즉 메시지가 핑 이라면 퐁 이라고 대답합니다.
메시지가 핑이 아니라면 아무 반응이 없습니다.
*지난강의 복습
-msg는 메시지를 의미하며, 문자열상태 즉 " "이나 ' '으로 싸여서 나타납니다.
-연산자 == 는 좌우의 값을 비교하고, 형태와 관계없이 그 내용이 같다면 true를 반환합니다.
-replier.reply() 는 괄호 안의 내용을 채팅방으로 전송합니다.
- else if(){} -
else if문은 if문의 중괄호가 끝나는 부분에 붙여 놓으면 if문의 소괄호 안의 내용이 false일때 자신의 소괄호 안의 내용이 true인지 확인하고, 맞다면 자신의 중괄호 안의 코드를 실행한 뒤 아랫줄로 넘어갑니다.
if문뒤에 if문을 하나 더 붙인 것 같은 기능을 하지만, if문 2개를 붙인 것 과의 차이점은 else if문은 앞의 if문이 옳다면 자신은 아예 실행을 하지 않은채로 바로 다음 줄로 넘어갑니다.
예를 들어,
var a = 100;
var b = 20;
if( msg == "더하기" ){
replier.reply(a+b);
}else if( msg == "빼기" ){
replier.reply(a-b);
}
이라고 한다면 msg가 더하기 일 때 a와 b를 더한 값인 120을 채팅방에 전송하며, msg가 빼기 일 때 a와 b를 뺀 값인 80을 채팅방에 전송합니다.
여기서 의문이 생기신 분도 계실겁니다.
"replier.reply() 의 괄호 안에는 문자열, 그러니까 " " 나 ' ' 로 싸인 것만 넣는 것 아니였나요?"
좋은 질문입니다.
replier.reply() 의 괄호 안에는 문자열을 넣기도 하지만, 변수들이나 간단한 코드를 넣기도 합니다.
이때 채팅방으로 보내지는 메시지는 넣은 변수의 이름이나 넣은 코드가 아닌, 그 변수 안에 할당되어 있던 값이나 그 코드를 실행한 결과입니다.
또, 코드와 문자열을 섞어서 보낼 수 도 있습니다.
예를 들어,
replier.reply(sender+"님 안녕하세요!");
이라고 한다면 메시지를 보낸 사람의 이름 뒤에 님 안녕하세요 를 덧붙여 채팅방으로 전송합니다.
보낸 사람의 이름이 1급_청정수 였다면
1급_청정수님 안녕하세요!
이라고 전송되겠죠.
당장은 이해하기 힘들겠지만, 앞으로 게속 접하다 보면 자연스레 숙달될 것 입니다.
- else{} -
else 문은 제어문 if(){} 또는 else if(){}의 중괄호가 끝나는 부분에 붙여 놓으면 앞의 제어문의 소괄호 안의 내용이 false일 경우 자신의 중괄호 안의 코드를 실행한 뒤 아랫줄로 넘어갑니다.
예를 들어,
if( msg == "핑" ){
replier.reply("퐁");
}else{
replier.reply("핑이 아니네요");
}
이라고 한다면 msg가 핑 일때 퐁이라고 답하고, 핑이 아닐 때 핑이 아니네요 이라고 답합니다.
! 위 소스는 실제로 사용하지는 마세요. 모든 말에 봇이 답장하며 도배가 일어납니다. !
다음 강좌에서는 반복문에 대해 알아보도록 하겠습니다.
궁금한 점이 있으시다면 댓글로 질문하시기 바랍니다.
'메봇 강좌' 카테고리의 다른 글
4.1수학객체 사용법 (1) | 2020.03.30 |
---|---|
3.3.반복문 (0) | 2020.03.29 |
3.1.변수선언, 연산자 (4) | 2020.03.26 |
2.1. 핑퐁 봇 만들어보기 (10) | 2020.03.26 |
2. 카카오톡 봇 기본 세팅하기 (9) | 2020.03.26 |