위의 소스코드에서는 대략 3부분을 수정해야 합니다.
- 값 더하는 계산 부분
- 스캐너 객체 부분
- nextInt()의 개행부분
우선 첫번째의 값 더하는 부분입니다.
입력받으실 때, String str=scan.nextLine();를 사용하셨습니다.
즉, "문자열" 값으로 입력받으신 것입니다.
이때, 문자열(String)의 각 문자(char)들은 ASCII 코드표에 나와있는 정수 값을 가지게 됩니다.
ex) char형 1 = int형 49, char형 0 = int형 48
만일 이 상태에서 char형 1과 char형 0을 더해버리면 1+0으로 생각될 수도 있으나, 실제로는 정수값인 49+48이 됩니다.
이를 반영하여 char 형 값을 정수 값으로 활용하고 싶으시면 해당 문자에서 '0'이나 48을 빼주셔야 됩니다.
result = result + str.charAt(i)-'0'; //또는 -48
두번째로 스캐너 객체 부분입니다.
스캐너 객체는 재사용이 가능한 객채로써 굳이 Scanner sc, Scanner scan과 같이 2개를 사용하실 필요가 없습니다.
-> Scanner sc = new Scanner(System.in); 하나만 사용하시면 됩니다.
세번째로 개행(줄바꿈) 관련 부분입니다.
입력 예제를 보시면 두개의 숫자가 2줄에 걸쳐 들어옵니다. 즉, 엔터로 분리되어 있습니다.
그러나 스캐너의 sc.nextInt()는 개행문자까지 입력받지 않으므로, sc.nextLine()을 이용하여 개행문자를 직접 입력받아 줄바꿈을 해주셔야 됩니다.
위 3가지 부분을 아래와 같이 수정하시면 됩니다.
llabllab 5년 전
안녕하세요.도움이 필요합니다!
import java.util.*;
답이 안나오는 이유가 뭘까요..실행은 되는데..public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
Scanner scan=new Scanner(System.in);
int N=sc.nextInt();
String str=scan.nextLine();
int result=0;
int i;
for(i=0; i<str.length();i++){
result=result+str.charAt(i);
}System.out.println(result);
}
}