-
[Java]STEP0 - 사용자가 입력한 값에 따라, 크기가 다른 구구단 출력하기개발 공부/Java 2020. 8. 21. 19:39
본 게시글은 인프런의 "만들어 가면서 배우는 JAVA 플레이그라운드" 에 나오는 과제물을 직접 구현한 것입니다.
모든 저작권은 해당 강의의 강사님이신 자바지기 박재성님에게 있음을 알립니다.
<요구 사항>
- 사용자가 입력한 값에 따라 크기가 다른 구구단을 계산해 출력한다.
- 예를 들어 사용자가 "8,7"과 같은 문자열을 입력하면 팔칠단을 구현한다.
팔칠단은 2 * 1 ... 2 * 7, 3 * 1 ... 3 * 7, ... , 8 * 1 ... 8 * 7 까지 구현하는 것을 의미한다.
<동작 구조>
1. 사용자로부터 두 숫자를 입력받고, 쉼표(',')에 따라 두 숫자를 구분한다.
String inputValue : 사용자가 입력한 두 숫자를 문자열로 처리하여 한 번에 받아오는 역할을 한다. (ex. 8,7)
String[] splitedValue : 앞서 받았던 두 숫자를 쉼표(',')를 기준으로 split()을 이용하여 두개의 숫자로 구분하여 배열에 담는 역할을 한다. (ex. splitedValue[0] == 8 / splitedValue[1] == 7)
2. 각각 배열에 담은 두 숫자를 정수형으로 변환한다.
split()으로 구분 된 두 숫자는 문자열 형식이므로, 실제 사용을 위해서 int로 변환해야 한다.
Integer.parseInt() 를 사용한다.int first : splitedValue[] 에 담긴 숫자 중 첫 번째 숫자를 정수형으로 변환하여 담는다.
int second : splitedValue[] 에 담긴 숫자 중 두 번째 숫자를 정수형으로 변환하여 담는다.
3. 이중 for문을 사용하여, 사용자가 입력한 크기대로 구구단을 출력한다.
예를 들어 사용자가 입력한 값이 8,7이라면 first에는 8, second에는 7이 담겨있을 것이다.
따라서 구구단은 2단 부터 8단까지 출력되어야 하고, 각 단은 7번째까지만 있어야 한다.
바깥 for 문은 몇 단까지 출력되는 지를 관리한다. 따라서 i는 2단 부터 first 단 까지의 범위를 가진다.
안쪽 for 문은 각 단의 갯수를 관리한다. 따라서 j는 1부터 second 까지의 범위를 가진다.
<결과 화면>
사용자의 입력 값으로 5,3을 입력하였다.
그에 따라 2단 ~ 5단까지 출력되며 각 단은 3번째 까지만 가지는 것을 확인 할 수 있다.
<전체 코드>
import java.util.Scanner; public class gugudan { public static void main(String[] args) { System.out.print("두 수를 입력하세요(ex. 8,9 - 쉼표 필수): "); Scanner scanner = new Scanner(System.in); String inputValue = scanner.nextLine(); String[] splitedValue = inputValue.split(","); int first = Integer.parseInt(splitedValue[0]); int second = Integer.parseInt(splitedValue[1]); for (int i = 2; i <= first; i++) { System.out.println(i + "단"); for (int j = 1; j <= second; j++) { System.out.println(i + " * " + j + " = " + i*j); } System.out.println(""); } } }
본 게시물은 여기서 마치겠습니다. 읽어주셔서 감사합니다.
수정사항이나 건의사항은 댓글로 남겨주시면 감사하겠습니다.
'개발 공부 > Java' 카테고리의 다른 글
[Java]STEP1 - 3) 연산자, 우선순위, 종류(단항/이항/삼항), NaN과 Infinity (0) 2020.09.02 [Java]STEP1 - 2) 변수, 리터럴, 데이터 타입, 타입 변환 (0) 2020.08.28 [Java]STEP1 - 1) 자바의 개념, 특징, 구조, 주석과 실행문, 이클립스에 대하여 (0) 2020.08.27 [Java]STEP0 - 달력을 바탕으로 일정의 등록, 검색, 변경 기능이 있는 일정 관리 프로그램 만들기 (0) 2020.08.23 [Java]STEP0 - 달력 알고리즘을 이용하여, 진짜 캘린더에서 나오는 달력과 똑같이 만들기 (0) 2020.08.21