티스토리 뷰

728x90
반응형

이중 반복문으로 출력할 수 있는 가장 간단한 일 중 하나가 바로 구구단이다.

 

스트림을 이래저래 가지고 놀다 보니까 이중 반복문도 돌아보고 싶어 졌는데,

 

연습하는 김에 구구단을 출력해 본다.

 

이중 for문으로 구구단 출력

 

특별한 설명은 필요 없을 것 같아서 바로 코드로 간다.

import java.util.ArrayList;
import java.util.List;

public class MultiplicationTable {
    public static void main(String[] args) {

        for(int i = 2; i < 10; i++) {
            List<Integer> list = new ArrayList<>();
            for (int j = 1; j < 10; j++) {
                list.add(i * j);
            }
            System.out.println(i + " Times Table = " + list);
        }
     }
}
2 Times Table = [2, 4, 6, 8, 10, 12, 14, 16, 18]
3 Times Table = [3, 6, 9, 12, 15, 18, 21, 24, 27]
4 Times Table = [4, 8, 12, 16, 20, 24, 28, 32, 36]
5 Times Table = [5, 10, 15, 20, 25, 30, 35, 40, 45]
6 Times Table = [6, 12, 18, 24, 30, 36, 42, 48, 54]
7 Times Table = [7, 14, 21, 28, 35, 42, 49, 56, 63]
8 Times Table = [8, 16, 24, 32, 40, 48, 56, 64, 72]
9 Times Table = [9, 18, 27, 36, 45, 54, 63, 72, 81]

 

스트림으로 구구단 출력

 

코드를 더 깔끔하게 만들 방법이 생각나지 않아 날것 그대로(?) 올린다.

 

스트림 안에서 새로 스트림을 생성해서 리스트로 받아 출력해보았다.

import java.util.stream.IntStream;

import static java.util.stream.Collectors.*;

public class StreamMultiplicationTable {
    public static void main(String[] args) {
    
        IntStream.rangeClosed(2, 9)
                .mapToObj(a -> IntStream.rangeClosed(1, 9)
                        .map(b -> a * b)
                        .boxed()
                        .collect(toList()))
                .forEach(a -> System.out.println(a.get(0) + " Times Table = " + a));
    }
}
2 Times Table = [2, 4, 6, 8, 10, 12, 14, 16, 18]
3 Times Table = [3, 6, 9, 12, 15, 18, 21, 24, 27]
4 Times Table = [4, 8, 12, 16, 20, 24, 28, 32, 36]
5 Times Table = [5, 10, 15, 20, 25, 30, 35, 40, 45]
6 Times Table = [6, 12, 18, 24, 30, 36, 42, 48, 54]
7 Times Table = [7, 14, 21, 28, 35, 42, 49, 56, 63]
8 Times Table = [8, 16, 24, 32, 40, 48, 56, 64, 72]
9 Times Table = [9, 18, 27, 36, 45, 54, 63, 72, 81]

구현해놓고 보니 아무래도 가독성은 이중 for문이 좋은 것 같다.

 

그래도 스트림에 익숙해지는 게 목적이니까, 계속 써먹어야지.

 

소수 판별하는 문제도 스트림으로 풀고 있는데, 추가로 올리도록 하겠다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함