구현하고자 하는 프로그램 목표와 힌트 몇 가지만 보고서, 내가 이해하고 습득한 머릿속 코드들을 최대한 끄집어내어 본 건 처음인 것 같다.
코드 실습용 로컬 PC가 없어서, 우선은 백지에 손코딩하듯 삼성노트에 손으로 직접 써보면서 머릿속 구현을 하였고, 아쉬운대로 repl.it의 웹 IDE에 옮겨적었다.
(당연하겠지만) 머릿속의 완전하지 못한 코드와 에러가 몇 군데 발생하였다. 정수형 선언을 빼먹었거나, 배열 변수명을 써야 할 자리에 자료형 예약어를 썼다거나 하는 오류들... 무엇이 어떻게 왜 잘못되었는지 이해하고서 디버깅하다보니 순조로웠다.
입력받은 문자를 new 입력변수.nextLine()으로 문자열화, 문자열을 문자열.split(",")으로 문자 배열화, 이들을 정수로 추출하는 Integer.parseInt(배열[인덱스])까지... 뭔가 갑자기 훅 뛰는 당황스런 느낌이 들었지만, 아직은 완벽한 이해보다는 이런 기능과 편리함을 경험하는 데 중점을 두는 걸로...
나중에는 이 코드를 repl.it에서 github에 direct로 복붙해서 push했고, 집에 있는 로컬 PC의 로컬 Repository에 pull까지 하는데 성공했다.
이쯤에서 컴퓨터 싹 갈아엎고 실습환경 구현에서부터 계산기 만드는 프로그래밍까지 처음부터 다시 해볼까 생각도 해봤지만, 일단은 일정 관리 프로그램까지 만들고 나서 재실습 해보는 것으로.
이런 식으로 일주일이 순식간에 훅 가네... 뭐 별거 안 만든 것 같은데...
//구구단 대신 nn단('2 x 1' 부터 'n x n'까지 계산하는 변형 구구단)
import java.util.Scanner;
public class ModifiedMultiplicationTableVer01 {
public static void main(String[] args) {
System.out.println("몇 단??");
Scanner scanner = new Scanner(System.in); //사용자에게 단 수를 입력 받기
int number = scanner.nextInt(); //입력받은 단 수를 정수 number로 변환
for (int j=1;j<number;j++) { //number단 단위 반복(2단 ~ number단)
int[] calculated = new int[(j+1)]; //number단 곱셈 결과값 넣을 빈 배열 생성
for (int i=0;i<calculated.length;i++) { //단 내 곱셈 반복('x 1' ~ 'x 현재 단 수')
calculated[i] = (j+1) * (i+1); //곱셈 결과를 배열에 순서대로 대입
System.out.println(calculated[i]); //대입된 결과값 출력
} //단 내 반복문 종료
System.out.println("");
} //단 단위 반복문 종료
} //main 메소드 종료
}
//사용자에게 두 수(m, n)을 입력받아, 구구단 대신 mn단 만들어보기
import java.util.Scanner;
public class ModifiedMultiplicationTableVer02 {
public static void main(String args[]) {
//사용자에게 두 수(first, second)을 입력받기
System.out.println("몇 단??(m,n <- 이런식으로 입력하기)");
Scanner scanner = new Scanner(System.in); //사용자에게 두 수 입력받기
String inputValue = scanner.nextLine(); //입력받은 Raw Data를 문자열 형태로 변환
String[] splittedValue = inputValue.split(","); //두 수를 콤마 단위 분리하여 문자열 배열 형태로 대입
int first = Integer.parseInt(splittedValue[0]); //첫번째 수를 단 수로 설정
int second = Integer.parseInt(splittedValue[1]); //두번째 수를 곱할 상한치로 설정
//입력받은 두 수로 mn단 연산 및 출력
for (int i=1;i<first;i++) { //first단 단위 반복(2단 ~ first단)
System.out.println((i+1) + "단");
int[] calculated = new int[second]; //first단 second까지 곱셈 결과값 넣을 빈 배열 생성
for (int j=0;j<second;j++) { //단 내 곱셈 반복('x 1' ~ 'x second')
calculated[j] = (i+1) * (j+1); //곱셈 결과를 배열에 순서대로 대입
System.out.println(calculated[j]); //대입된 결과값 출력
} //단 내 반복문 종료
System.out.println("");
} //단 단위 반복문 종료
} //main 메소드 종료
}