27) Given the following method
```
static void nPrint(String message, int n) {
while (n > 0) {
System.out.print(message);
n--;
}
}
```
What is the printout of the call nPrint('a', 4)?
A) aaaa B) aaaaa **C) invalid call** D) aaa
답이 A라고 생각했는데, 실제로 코딩해서 실행해보면 에러가 발생합니다.
이유가 무엇인지 궁금합니다.
sehongpark님의 답변
# 문자열과 문자의 차이
파라미터 message는 String 타입의 레퍼런스 변수로 문자열을 가리킬 수 있습니다. 주어진 문제에서 메소드 호출을 `nPrint('a', 4)`로 하였기 때문에 파라미터 message에 문자 'a'가 대입이 됩니다. 코드로 표현하면 아래와 같습니다.
```
String message = 'a';
```
그러나 위 코드에서 'a'는 문자열이 아닌 문자입니다. 다시 말해, String 타입 아닌 char 타입의 값입니다. 따라서 타입이 일치하지 않기 때문에 컴파일 되지 않습니다. 쌍따옴표에 담긴 데이터는 String 타입이 되고, 따옴표에 담긴 데이터는 단일 문자인 char 타입이 됩니다.
goodhubby8님의 답변
아주 기초적인 내용이였네요. ;;
감사합니다.