# 각 자리수의 합
#### CODE <a class='btn btn-default' href='/codes/22680'>Link</a>
```
public class SumDigits {
public static void main(String[] args) {
int num = 374;
int a = num / 100;
int b = (num % 100) / 10;
int c = num % 10;
System.out.println("총합: " + a + b + c);
System.out.println(a + b + c);
}
}
```
#### INPUT
```
```
#### OUPUT
```
총합: 374
14
```
System.out.println("총합: " + a + b + c);
System.out.println(a + b + c);
a + b + c가 위에는 문자열?로 출력되고, 아래는 숫자로 계산되는 것 같은데
왜 그런지 궁금합니다.
nobinson20님의 답변
그 부분은 "총합: " + a 이 부분의 '+'와 a+b의 '+'의 차이때문에 그렇습니다. 괄호 내부의 파라메터들을 연산한 결과값을 도출해야하는데 그 과정에서 "총합:"+a 에서 +는 concatenation 즉 문자열 붙이기를 한 후 결과값으로 "총합: 3" 이 나오게 되고 그 이후의 연산도 마찬가지입니다. 그러나 a+b 는 정수+정수이므로 결과값으로 더하기 연산을 한 정수가 나오게 됩니다. 만약에 "총합: 14"로 나오게 하려면 `System.out.println("총합: "+(a+b+c));`와 같이 괄호를 써주시면 됩니다. <br> +도 양쪽의 input 2개를 받아 output 1개를 내는 함수같다고 보시면 됩니다.
sehongpark님의 답변
# 문자열 더하기 숫자는, 문자열입니다.
때문에, 아래의 계산 순서를 따라 “총합: 374”가 출력 됩니다.
```
System.out.println("총합: " + a + b + c);
// => "총합: 3" + b + c
// => "총합: 37" + c
// => "총합: 374"
```
## 해결법
괄호를 사용하여 숫자를 먼저 더해보세요.
```
System.out.println("총합: " + (a + b + c));
// 총합: 14
```