조건문 : checkAge

Yoon Kyung Park·2023년 4월 26일
0

My Item Pool

목록 보기
2/3

Q. 이름과 나이를 입력받아 나이별로 다른 메시지를 리턴해야 한다.

출력 조건)

  • string 타입으로 리턴한다.
  • 이름이 Olivia이고, 나이가 20살 이상이면, Welcome, Olivia!를 리턴해야 한다.
  • 이름이 Peter이고, 나이가 20살 보다 적으면, Go home, Peter!를 리턴해야 한다.
  • 쉼표, 공백, 느낌표까지 정확하게 리턴한다.
  • 두 값을 비교할 때는 비교 연산자 (<,>,=== 등)을 사용한다.

A.
일단, 처음에 출력 조건을 보고 단순히 Olivia와 Peter의 경우만 생각하고, '이름 비교, 나이 비교 --> 조건문이 2개 필요'하다고 생각했다. 그래서

function checkAge(name, age){
	if(name === 'Olivia' && age >= 20){
    	return 'Welcome, Olivia!';
    }else if(name === 'Peter' && age < 20){
    	return 'Go home, Peter!'
    }
}

를 했는데 오류가 났다.
왜냐하면 매개변수로 받는 name과 age는 Olivia와 Peter/ 20살 이외도 다른 값이 들어올 수 있기 때문이다.
그리고 다시 보니 함수 이름에 힌트가 있었다.
'checkAge'!!!
여기서 계속 달라지는 건 이름이다.
나이는 비교 연산자로 20을 기준으로 나누는 조건문을 만들면 되지만,
세상에 수많은 이름들을 다 값으로 지정해줄 수 없기에 이름은
변수로 받아야 한다.

그래서 올바른 조건문은 다음과 같다.

function checkAge(name, age){
	if(age >= 20){
    	return 'Welcome, ' + name + '!';
    }else if(age < 20){
    	return 'Go home, ' + name = '!'
    }
}

'+'는 계산에서 사용될 때는 산술 연산자의 역할을 하지만,
문자열 간에 사용될 때는 문자열 연결 연산자의 역할을 한다.
이때는 띄어쓰기를 ' '로 + 해주면 글자 뒤에 띄어쓰기가 되어
값을 반환한다.

혹은

function checkAge(name, age){
	if(age >= 20){
    	return `Welcome, ${name}!`;
    }else if(age < 20){
    	return `Go home, ${name}!`
    }
}

백틱(``)을 사용하여 문자열을 표현할 수도 있다.
이를 템플릿 리터럴(template literal)이라고 한다.
백틱으로 문자열을 감싸주면 "",''와 달리
문자열 내에 변수를 삽입하여 문자열로 표현할 수 있다.
이때 변수는 ${} 안에 넣어준다.
또한 + 문자열 연결 연산자와 달리 띄어쓰기를 따로 ' ' 이렇게
해줄 필요없이 문자열 내부에서 띄어써서 적으면 된다.

profile
developerpyk

0개의 댓글