자바 스캐너의 연습문제입니다. 0과 1000 사이의 3자리 정수를 키보드에서 읽어, 정수의 각 자리의 수를 모두 더한 값을 출력하시오 ( '%', '/' 연산자를 활용하세요) 결과 : 873를 읽은 경우, 모두 더한 값 : 8 + 7 + 3 = 18
1. 연산자가 어떻게 쓰이는지 알아보자.
먼저 이 연산자가 마이너스 연산자인지?,나눗셈 연산자, 몫 연산자 인지는 중요하지 않습니다. 연산자를 직접 대입을 해보고 어떤 기능을 하는지 적어두고, 각 기능을 중심으로 접근을 하면 쉽습니다.
1
2
3
4
|
System.out.println(873 % 10); //3 [ 세번째 숫자만 가져오기]
System.out.println(873 / 10); //87 [ 가운데 숫자를 가져오기위한 첫번째 단계]
System.out.println(873 / 10 /10); //8 [ 첫번째 숫자만 가져오기]
System.out.println((873 / 10) % 10);//7 [ 가운데 숫자만 가져오기]
|
cs |
'%10'의 기호를 썼을 땐 제일 마지막 글자 한 개만 가져옴을 알 수 있습니다. 3 자릿수를 입력받아서 각 자릿수를 가져올 때 제일 마지막에 위치시킨다면 가져올 수 있습니다.
'/10' 기호와 함께 섰을땐 원본 글자의 마지막 글자 한 개를 지운 뒤에 가져오는 것을 알 수 있습니다.
예를 들면 123/10 > 12를 가져오게 할 수 있습니다. 따라서 이두 기호를 조합한다면 숫자가 여러 개라도 한자리 한자리 가져올 수 있습니다. 가운데 글자를 가져오기 위해서는 '/10'를 두 번 호출했더니 수월해졌습니다.
2. 스캐너 입력
키보드에서 입력을 받으려면 스캐너라는것을 쓰면 됩니다.
1
2
3
4
5
6
7
8
9
|
java.util.Scanner scan = new java.util.Scanner( System.in );
System.out.print("3자리숫자 입력하셔 ? ");
int i숫자 = scan.nextInt();
int iA = i숫자 % 10;
int iB = i숫자 / 10 / 10;
int iC = (i숫자 / 10) % 10;
System.out.println(iA+iB+iC); // 13
|
cs |
첫 번쨰 탭에서는 각 자릿수를 가져왔고, 두 번째에서는 스캐너라는 것을 통해 사용자로부터 입력하는 것이 가능해졌습니다. 이 두 가지를 조합하여 '+' 덧셈을 하였더니 문제에서 요구한 각 자릿수를 더하여 출력이 되었습니다.
자바스캐너 사용법이 익숙하지 않으시다면 하단의 링크를 참조하시길 바랍니다.
자바 스캐너 사용법 ( java scanner ) 정리
'JAVA' 카테고리의 다른 글
NoClassDefFoundError의 발생원인 (2) | 2022.12.15 |
---|---|
심각한수준의 아파치 원격제어‘로그4j’ 취약점, 어떻게 패치하나요? (1) | 2021.12.13 |
자바 중수로 가는 지름길 ? 무름표연산자, 삼항연산자 (1) | 2021.12.09 |
입력형식오류, InputMismatchException (in java) (0) | 2021.11.29 |
JAVA 숫자에러 NumberFormatException 해결방법 (1) | 2021.11.26 |
댓글