# 박테리아 writeLog 메소드랑 printLog 메소드 두 가지를 만드는 이유가 먼저 writeLog에서 생성된 값이 그대로 printLog로 들어가서 계산이 되는 건가요??? 코드의 흐름이 잘 이해가 안가서요... #### CODE <a class='btn btn-default' href='/codes/40923'>Link</a> ``` public class Bacteria { public static void main(String[] args) { // 배열 생성 int[] bacteriaCountLogs = new int[10]; // 개체 수 기록 writeLog(bacteriaCountLogs); // 결과 출력 printLog(bacteriaCountLogs); } // 박테리아의 개체 수를 기록 public static void writeLog(int[] logs) { /* 해당 메소드를 완성하세요. */ for(int i = 0; i<logs.length; i++) { logs[i] = (int) Math.pow(2, i); } } // 배열을 입력받아, 해당 요소를 모두 출력 public static void printLog(int[] arr) { System.out.printf("["); for (int i = 0; i < arr.length; i++) { System.out.printf("%d", arr[i]); if (i != arr.length - 1) { System.out.printf(", "); } } System.out.printf("]"); } } ``` #### INPUT ``` ``` #### OUPUT ``` [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] ```
## 메소드를 두개 사용하는 목적 전체적인 코드의 흐름은 3단계 입니다. 1.크기가 10인 bacteriaCountLogs 배열을 생성 합니다. int[] bacteriaCountLogs = new int[10]; 2.writeLog 메서드의 파라미터로 bacteriaCountLogs 배열을 넘겨 반복문을 사용하여 배열 인덱스에 순차적으로 값을 넣어줍니다. public static void writeLog(int[] logs) { /* 해당 메소드를 완성하세요. */ for(int i = 0; i<logs.length; i++) { logs[i] = (int) Math.pow(2, i); } } 3.printLog 메서드를 통해 bacteriaCountLogs 배열에 저장된 값을 반복문을 사용하여 출력해줍니다. 조건문은 배열의 마지막 인덱스에 저장된 값이 출력되고 난후 ,(콤마)를 출력하지 않기 위해 사용합니다. public static void printLog(int[] arr) { System.out.printf("["); for (int i = 0; i < arr.length; i++) { System.out.printf("%d", arr[i]); if (i != arr.length - 1) { System.out.printf(", "); } } System.out.printf("]"); } 이렇게 3단계로 코드가 진행됩니다.