본문 바로가기
국비학원 전 강의 필사/JAVA 플레이그라운드

#15 배열로 구구단 다시 구현 - <JAVA플레이그라운드>

by kkooHan 2022. 8. 17.

 

출처 : https://www.inflearn.com/course/java-codesquad/dashboard

 

[무료] 만들어 가면서 배우는 JAVA 플레이그라운드 - 인프런 | 강의

는 마스터즈코스 화이트레벨을 수강하기 위한 준비단계입니다. 대상은 코딩을 전혀 경험해보지 않았던 분들을 위한 과정입니다. 기존의 이론 위주로 학습 방식이 아니라 무엇인가를 만들어가

www.inflearn.com

 

 

 

 

 

 

필사 :

 

학습 목표

 - 배열을 활용해 구구단을 구현하는 경험을 한다.

 

요구사항

 - 구구단 결과를 배열에 저장한 후 배열의 결과를 출력한다.

 

힌트

 - 2단을 구현하기 위해 크기가 9인 배열을 생성한다

 - for문을 돌면서 구구단 실행 결과를 배열에 저장한다.

 - 배열의 크기 만큼 for 문을 통해 결과를 출력한다

 

public class Gugudan {
	public static void main(String[] args) {
    	int[] result = new int[9];
        for(int i = 1; i <= result.length; i++) {
        	// 계산 결과를 배열에 저장
        }
        
        for(int i = 1; i <= result.length; i++) {
        	// 계산 결과를 화면에 출력
        }
    }
}

 


배열은 여러 개의 데이터를 관리할 때 사용.

 

여러 개의 데이터를 하나의 변수에 저장하고 싶을 때.

 

예 : 구구단 실행 결과를 어디에 저장했다가

       저장된 결과를 화면에 출력하는 부분을 분리해서 구현

       -> 어딘가에 저장할 수 있는 곳이 배열.

 

 

 

지금까지 했던 구구단들은 다 제거하고

다시 2단부터 구현할 것이다.

 

반복문, 변수에 대해서 알고 있기 때문에

그 부분을 활용해서 구현해보겠다.

 

 

 

배열을 만드는 방법.

배열의 크기를 먼저 지정.

 

public class Gugudan {
	public static void main(String[] args) {
		int[] result = new int[9];
	}
}

[ ] -> 배열 표시

result -> 변수 이름

[9] -> 배열의 크기. 9개의 데이터를 저장할 수 있는 배열.

int -> 데이터의 값은 정수 숫자.

 

 

 

이제 for문을 작성할 수 있다.

public class Gugudan {
	public static void main(String[] args) {
		int[] result = new int[9];
		for(int i = 0; i < result.length; i++) {

result.length를 하면 배열의 크기를 얻어올 수 있다.

 

 

 

곱셈 결과를 result에 담고 싶다.

result [0~8] -> result 배열의 위치를 나타냄.

배열의 첫 번째는 1로 나타내지 않고 0으로 나타낸다.

public class Gugudan {
	public static void main(String[] args) {
		int[] result = new int[9];
		for(int i = 0; i < result.length; i++) {
			result[i] = 2 * (i + 1);

i는 0부터 시작되므로 i+1로 표현했다.

이렇게 하면 9번을 돌면서

구구단 2단을 result에 담는다.

 

 

 

잘 담겼는지 확인해보겠다.

public class Gugudan {
	public static void main(String[] args) {
		int[] result = new int[9];
		for(int i = 0; i < result.length; i++) {
			result[i] = 2 * (i + 1);
		}
		
		for(int i = 0; i < result.length; i++) {
			System.out.println(result[i]);
		}
	}
}

값을 담을 때, 값을 출력할 때 비교.

 

 

 

같은 방식으로 3단 만들어보자.

Ctrl+Alt+아래 화살표 활용.

주의할 점 : 값이 중복되지 않도록 하기. 

 

 

 

방법 1

아래에 있는 int[] result -> result로 변경.

 -> 기존에 있던 값들을 새로운 값들로 덮어 씌우기.

 

 

 

방법 2

아래에 있는 result -> times3로 변경 (3times는 안됨. 왜?)

result를 더블 클릭하면

result 단어 전체가 블록 처리된다.

times3를 복붙하기 편해진다.

-> 2단, 3단 따로 저장

 

 

 

9단까지 저장되어야 하는데

중복되는 코드가 많다.

바뀌어야되는 값은 하나다. -> ' 2 * i ' 에서   '2'

 

 

방법 1 => 이중 for문 (2, 3, 4, ··· 9로 바뀌도록 for문 추가)

 

방법 2 => method나 함수 만들기.

 

 

 

 

이중 for문을 만드는 연습을 해보면 좋을 것 같다.

 

for문을 완벽히 이해했다면

반복문의 반복문을 만들 수 있는데

그게 생각보다 쉽지는 않다.

 

이중 for문을 하면서

반복문에 대한 깊이 있는 이해를 해보길 추천

 

이중 for문은 스스로 해봤으면 좋겠다.

 

 

 

다음 강의에서는

method를 만들어보겠다.

 

main method가 아니라

우리만의 method 만들어 보기.

 

 

 

 

 

느낀점 : 

 

이중 for문 어려워 보인다.

이전에 파이썬으로 할 때 어려웠던 기억이..

그래도 도전해보겠다.

 

 

 

코드 한 번 따라쳐봤는데

int[] result = new int[9];
for(int i = 0; i < result.length; i++) {
result[i] = 2 * (i + 1);

 

이 부분 정확히 이해가 안 된다.

일단 외워야될까?

 

[ ] -> 배열을 나타낸다.

new -> 예약어? 예약어가 뭔데

int[9] -> 배열의 크기는 9이다.

.length가 뭐야? 배열의 크기?

 

 

 

이중 for문 도전!

 

+ 성공!

public class Gugudan2 {
	public static void main(String[] args) {
        	for(int j = 2; j < 10; j++) {
			int[] result = new int[9];
			for(int i = 0; i < result.length; i++) {
				result[i] = j * (i + 1);
			}
			for(int i = 0; i < result.length; i++) {
				System.out.println(result[i]);
			}
		}
	}
}
		// TRY 2 -> 새로운 변수 설정
		// 이중 for문 성공! (3 누르면 3단만 나오는 그건 모르겠음)

 

+22/8/18 : 아래의 for 반복문을 합쳐도 된다!

public class F2Gugudan3 {
	
	public static void main(String[] args) {
		
		for(int j = 2; j < 10; j++) {
			
			int[] result = new int[9];
			
					for(int i = 0; i <result.length; i++) {
						result[i] = j * (i + 1);
						System.out.println(result[i]);
					}
		}
	}
}

 

+ 22/8/18 : 

// j = 2 -> result[0] -> 2 * 1, result[1] -> 2 * 2
// j = 3 -> result[0] -> 3 * 1, result[1] -> 3 * 2
// 3 눌렀을 때 3단이 나오게 하려면 Scanner를 활용하면 되겠다.

-> 구구단 결과가 나오긴 했지만 일회성이다.

댓글