TIL

230125 [Java] TIL (이중반복문 / 2차원 배열 / 메소드)

하차모 2023. 1. 25. 22:19

1. 이중반복문

  반복문 안에 이중으로 반복문을 쓸 수 있다. (그 이상으로도 가능)

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        System.out.print("*");
    }
    System.out.println();
}

  이중반복문은 보통 while문보다는 for문으로 많이 쓴다.

 

2. 2차원 배열

//2행 3열의 2차원 배열 생성
int[][] arr1 = new int[2][3];

그림으로 나타내면 이렇다.

  배열의 length는 행의 수, 각 행의 length는 열로 생각하면 된다.

System.out.println(arr1.length); // 2
System.out.println(arr1[0].length); // 3

열을 지정하지 않고도 배열을 생성할 수 있다.

//길이가 3인 정수형 2차원 배열 생성
int[][] arr = new int[3][];

  행마다 길이가 다를 수 있다.

arr[0] = new int[3];
arr[1] = new int[4];
arr[2] = new int[5];

그림으로 나타내면 이렇다.

 

 

3. 메소드

  메소드 = 함수

  메소드는 선언과 호출 영역으로 구분할 수 있다.

 

  3-1. 선언

    메소드의 선언은 클래스 안, 다른 메소드 선언의 밖에서 해야 함

//메소드 선언 문법
접근제한자 static 리턴타입 메소드명(매개변수들...) {
      실행 내용 작성...
}
public class Test {
    public static void main(String[] args) {
        //호출
        hello();
    }
    
    //메소드 선언
    public static void hello() {
        System.out.println("안녕하세요!");
        //메소드의 호출은 main 메소드에서만 할 수 있는 게 아니다!
        tellName();
    }
    public static void tellName() {
        System.out.println("이름은 홍길동입니다.");
    }
}
//실행 결과 -------
//안녕하세요!
//이름은 홍길동입니다.

 

  3-2. 호출

    메소드의 호출은 메소드의 선언 영역 안에서 사용함

    메소드를 호출할 때는 메소드명이 같아야 하고, 매개변수의 정보가 같아야 함

    * 매개변수의 정보 : 자료형, 매개변수의 개수

public class 메소드 {
    public static void main(String[] args) {
//        tellInfo(30, "java"); 매개변수의 자료형 불일치
//        tellInfo("홍길동"); 매개변수의 개수 불일치
        tellInfo("홍길동", 25);
    }

    //String name, int age : 매개변수
    //필요한 만큼 매개변수를 받아올 수 있음
    public static void tellInfo(String name, int age) {
        System.out.println("이름은 " + name);
        System.out.println("나이는 " + age);
    }
}

 

  3-3. 리턴

    메소드를 호출한 영역에 결과를 돌려줌

    '리턴타입' 자리에 리턴할 데이터의 자료형 입력 (ex. int, String, double...)

    (void : 메소드 실행 후 리턴할 데이터가 없음)

    * 리턴은 메소드의 마지막에 딱 한 번만 호출 가능

public class 메소드 {
    public static void main(String[] args) {
        System.out.println(getSum(40, 50));
    }

    //매개변수로 정수 두 개를 받아, 두 수의 합을 리턴
    public static int getSum(int a, int b) {
        return a + b;
    }
}

 

 

 

 

** 새롭게 알게 된 것

삼항연산자

//조건 ? 참일 때 값 : 거짓일 때 값;
int a = 5 > 4 ? 10 : 20;