Java 5일차 : 구구단 변형 구현해보기

피프티·2021년 11월 22일
0

이런 나라도 Java

목록 보기
6/6
post-thumbnail

21. 11. 18 학습일지

구현하고자 하는 프로그램 목표와 힌트 몇 가지만 보고서, 내가 이해하고 습득한 머릿속 코드들을 최대한 끄집어내어 본 건 처음인 것 같다.

코드 실습용 로컬 PC가 없어서, 우선은 백지에 손코딩하듯 삼성노트에 손으로 직접 써보면서 머릿속 구현을 하였고, 아쉬운대로 repl.it의 웹 IDE에 옮겨적었다.

(당연하겠지만) 머릿속의 완전하지 못한 코드와 에러가 몇 군데 발생하였다. 정수형 선언을 빼먹었거나, 배열 변수명을 써야 할 자리에 자료형 예약어를 썼다거나 하는 오류들... 무엇이 어떻게 왜 잘못되었는지 이해하고서 디버깅하다보니 순조로웠다.

  • 다 끝난 후, github에 작성한 구구단 변형 코드를 로컬 Repository에 pull하는데 성공했다.

입력받은 문자를 new 입력변수.nextLine()으로 문자열화, 문자열을 문자열.split(",")으로 문자 배열화, 이들을 정수로 추출하는 Integer.parseInt(배열[인덱스])까지... 뭔가 갑자기 훅 뛰는 당황스런 느낌이 들었지만, 아직은 완벽한 이해보다는 이런 기능과 편리함을 경험하는 데 중점을 두는 걸로...

나중에는 이 코드를 repl.it에서 github에 direct로 복붙해서 push했고, 집에 있는 로컬 PC의 로컬 Repository에 pull까지 하는데 성공했다.

이쯤에서 컴퓨터 싹 갈아엎고 실습환경 구현에서부터 계산기 만드는 프로그래밍까지 처음부터 다시 해볼까 생각도 해봤지만, 일단은 일정 관리 프로그램까지 만들고 나서 재실습 해보는 것으로.

이런 식으로 일주일이 순식간에 훅 가네... 뭐 별거 안 만든 것 같은데...

숫자 n을 입력받아 nn단 만들어보기

  • 코드 예제
    //구구단 대신 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단 만들어보기

  • 코드 예제
    //사용자에게 두 수(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 메소드 종료
    }
profile
어둠 속에서 은은한 빛을 먹고 강하게 자라는, 응달의 고사리처럼...

0개의 댓글