오늘은 어제 걷기반 수업에서 들었던 함수, 조건문, 반복문에 대해 문제를 풀어보겠다.
문제1. 함수호출하기
해당 함수를 실행시켜 "제가 좋아하는 과일은 사과, 오렌지입니다."를 출력하는 코드를 작성해보세요.
function printFruits(a, b) {
return "제가 좋아하는 과일은 " + a + "," + b + "입니다.";
}
console.log(printFruits(...));
- printFruits 함수가 사과, 오렌지를 매개 변수로 받아 “제가 좋아하는 과일은 사과, 오렌지입니다.”의 문장을 콘솔에 출력할 수 있도록 해주세요.
나의 답
function printFruits(a, b) {
return "제가 좋아하는 과일은 " + a + "," + b + "입니다.";
}
console.log(printFruits("사과", "오렌지"));
풀이: 이미 함수는 만들어져 있으니 printFruit 함수의 변수부분에 "사과"와 "오렌지"를 넣어주는 콘솔로그를 실행하면 된다.
문제2. 조건문 만들기
나이가 19살 이상이면 "안녕하세요", 아니라면 "나가세요"를 반환하는 함수인 checkAge 함수를 완성해 보세요.
function checkAge(age) {
...
}
// 함수 실행
...
- *checkAge* 함수가 숫자(*age)*를 매개 변수로 받아 19 이상일 때에는 *“안녕하세요”*라는 문자열을, 19 미만일 때에는 “나가세요”라는 문자열을 반환하도록 *checkAge* 함수를 완성해주세요.
- 실제 숫자를 매개변수로 받도록 *checkAge* 함수를 실행하여 “안녕하세요” 혹은 “나가세요”를 콘솔에 출력해보세요.
나의 답
function checkAge(age) {
if (age >= 19) {
return "안녕하세요";
} else {
return "나가세요";
}
}
// 함수 실행
console.log(checkAge(20)); // 예상 출력: "안녕하세요"
console.log(checkAge(5)); // 예상 출력: "나가세요"
풀이: 나이가 19살 이상이면 "안녕하세요"를 반환하고 아니면 "나가세요"를 출력해야하는 조건이 있으니 조건문 if를 사용해야 한다는 것을 알 수 있다. 따라서 age가 19살 이상이면 true(참)이니까 "안녕하세요"를 return 하고 19살 이하면 "나가세요"를 return할 수 있게 위와 같이 코드를 짜보았다.
문제3. 반복문 만들기
문자열(str)과 숫자(n)을 매개변수로 받아 str을 n번 콘솔에 출력하는 함수인 repeatWord 함수를 완성해보세요.
function repeatWord(str, n) {
...
}
// 함수 실행
....
- repeatWord 함수의 내용을 채워주세요.
- 인자 “hello”, 5를 넣어 repeatWord 함수를 실행시켜주세요. -> 결과: hello hello hello hello
나의 답
function repeatWord(str, n) {
for (let i = 0; i < n; i++) {
console.log(str);
}
}
// 함수 실행
repeatWord("hello", 5);
풀이: str을 n번 콘솔에 입력해야 하니 반복문인 for문을 써야한다는 것을 알 수 있다. 0번째 요소부터 1씩 증가하면서 n번까지 str(문자열)을 찍어내야 하기 때문에 i = 0; i < n; i++ 선언해주었고, 콘솔을 사용해서 str(문자열)을 찍어주면 된다.
문제4. 함수 응용하기
getStudents 함수를 완성하여 members 객체에서 role이 tutor인 객체들의 name을 콘솔에 찍어보세요.
const members = [
{
name: "최원장",
role: "tutor",
},
{
name: "윤창식",
role: "tutor",
},
{
name: "김병연",
role: "tutor",
},
{
name: "박가현",
role: "tutor",
},
{
name: "김멍멍",
role: "student",
},
{
name: "이야옹",
role: "student",
},
];
function getStudents() {
// hint: 배열 안의 모든 객체를 한 번 반복한다. (반복문)
// hint: 반복문 안에서 role이 tutor인 객체의 name을 콘솔에 출력한다 (조건문)
...
}
// 함수 실행
...
- getStudents 함수의 내용을 채워주세요.
- getStudents 함수를 실행시켜주세요. -> 결과: 최원장 윤창식 김병연 박가현
나의 답
const members = [
{
name: "최원장",
role: "tutor",
},
{
name: "윤창식",
role: "tutor",
},
{
name: "김병연",
role: "tutor",
},
{
name: "박가현",
role: "tutor",
},
{
name: "김멍멍",
role: "student",
},
{
name: "이야옹",
role: "student",
},
];
function getStudents() {
// hint: 배열 안의 모든 객체를 한 번 반복한다. (반복문)
// hint: 반복문 안에서 role이 tutor인 객체의 name을 콘솔에 출력한다 (조건문)
for (let i = 0; i < members.length; i++) {
if (members[i].role === "tutor") {
console.log(members[i].name);
}
}
}
// 함수 실행
getStudents();
풀이: 여기서 중요한 점은 member은 객체들을 가지고 있는 배열이다. 이말은 즉 전체를 보면 배열인데, 배열 안에 여러개의 객체들을 가지고 있는 것이다. 일단 배열 안의 모든 객체들을 반복해야 하기 때문에 for문을 사용하여 member의 배열 길이 만큼 한번만 돌아준다. 돌때 객체의 property(속성) 중 role : tutor인 객체의 name을 콘솔에 출력해야 하기 때문에 members[i].role === "tutor" 을 조건으로 하는 if문을 for문 안에 만들어줘야 한다. 저것을 해석해 보자면, "member라는 배열안에 i번째 객체의 role이 tutor이니? 응 맞아."라는 뜻이다. 어려웠던 점은 배열접근법과 객체접근법 두개를 혼합해서 사용해야 되기 때문에 난이도가 좀 있는 문제였던것 같다. 마지막으로 member이라는 배열에 i번째 객체의 name을 콘솔로 출력해주면 된다.
.
.
.
#일기
오늘은 마지막 '문제4. 함수 응용하기'가 조금은 어려웠던 것 같다. 그래도 포기하지 않고 생각해보다가 배열안의 객체에 접근하는 방법을 검색해보니 쉽게 해결할 수 있는 문제였던 것 같다! 문제를 모르겠으면 답을 검색해보는 것이 아닌 어떻게 접근할지 생각하는 것이 매우 중요한 것 같다. 나중에도 어려운 문제와 마주하겠지만, 어떻게 접근할지 미리 한글로 써보고 순서대로 코드를 짜면서 문제를 해결해 나간다면 정말 훌륭한 개발자가 될 수 있겠다고 생각했다!! 또한 어떻게 검색을 하냐도 개발자 역량을 키우는데 있어 관건인 것 같다. 어떻게 검색해야 문제에 대한 실마리가 나올 수 있을지 고민해봐야겠다 :)
'수준별 분반' 카테고리의 다른 글
240730 걷기반 실습 (0) | 2024.07.30 |
---|---|
240729 걷기반 수업 (0) | 2024.07.29 |
조건문과 반복문 문제 풀어보기 (2) | 2024.07.25 |
JavaScript 문법 걷기반 실습(백틱 사용법, 깃허브 처음연결코드) (4) | 2024.07.24 |
JavaScript 기본 문법 숙제 (7) | 2024.07.23 |