본문 바로가기

IT & AI/AI 지식

JAVA 조건문, 반복문, 참조 타입(배열) 정리

by 빛나는해커 2024. 11. 21.

안녕하세요! 지난 글에서 JAVA의 기본적인 내용에 대해 알아보았습니다.

이번에는 조건문, 반복문, 참조타입, 배열에 대해서 정리해보았습니다.
C언어를 공부하신 분들은 JAVA와 크게 다르지 않다는 걸 눈치 채실 수 있을 겁니다. 거의 내용이 일치한다고 보시면 됩니다.
그래서 보통 JAVA를 공부하기 전에 C언어를 먼저 공부하시고 JAVA로 넘어 오시는 분들이 많습니다.

1.  조건문과 반복문

 

조건문: if문, switch문

  • if문은 조건이 참일 경우 특정 코드를 실행하는 조건문이다.
  • 조건식이 참일 때만 해당 블록의 코드가 실행된다.
int num = 10;
if (num > 5) {
    System.out.println("num은 5보다 크다");
}
  • if-else문은 조건이 참일 때와 거짓일 때 각각 다른 코드를 실행하는 구조이다.
int num = 3;
if (num > 5) {
    System.out.println("num은 5보다 크다");
} else {
    System.out.println("num은 5보다 작거나 같다");
}
  • if-else if-else문은 여러 조건을 순차적으로 검사하여 해당 조건이 참일 경우 그 블록의 코드를 실행한다.
int score = 85;
if (score >= 90) {
    System.out.println("A 등급");
} else if (score >= 80) {
    System.out.println("B 등급");
} else {
    System.out.println("C 등급");
}
  • switch문은 하나의 변수 값에 따라 여러 분기 처리를 할 때 유용하다.
  • case를 사용해 각 조건을 구분하고, break로 각 조건이 끝나면 빠져나가도록 한다.
int day = 3;
switch (day) {
    case 1:
        System.out.println("월요일");
        break;
    case 2:
        System.out.println("화요일");
        break;
    case 3:
        System.out.println("수요일");
        break;
    default:
        System.out.println("기타 요일");
}

 

반복문: for문, while문, do-while문

  • for문은 반복 횟수가 정해져 있을 때 사용하는 반복문이다. 초기화, 조건식, 증감식을 이용해 반복을 제어한다.
for (int i = 0; i < 5; i++) {
    System.out.println("i의 값: " + i);
}
  • while문은 조건식이 참일 동안 반복 실행하는 구조이다.
  • 조건을 먼저 검사하기 때문에 조건이 거짓일 경우 한 번도 실행되지 않을 수 있다.
int count = 0;
while (count < 3) {
    System.out.println("count: " + count);
    count++;
}
  • do-while문은 최소 한 번은 블록 내의 코드를 실행한 후, 조건을 검사하여 반복 여부를 결정한다.
int count = 0;
do {
    System.out.println("count: " + count);
    count++;
} while (count < 3);
  • break문은 반복문을 즉시 종료하는 데 사용된다.
  • switch문에서도 사용되어 특정 조건을 만족할 때 분기 처리를 중단할 수 있다.
for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break;  // i가 5일 때 반복문 종료
    }
    System.out.println("i: " + i);
}
  • continue문은 반복문의 나머지 부분을 건너뛰고 다음 반복으로 넘어가게 한다.
  • 반복을 건너뛰고 조건을 다시 검사하게 된다.
for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) {
        continue;  // 짝수일 경우 출력하지 않고 다음 반복으로 넘어감
    }
    System.out.println("i: " + i);
}

2.  참조 타입

 

참조 타입과 참조 변수

  • 자바에서 데이터 타입은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나눌 수 있다.
  • 기본 타입에는 int, float, boolean 등이 있으며, 참조 타입에는 배열, 클래스, 인터페이스 등이 포함된다.
  • 기본 타입은 실제 값을 저장하고, 참조 타입은 값이 저장된 메모리 주소를 참조한다.
  • 기본 타입의 데이터는 스택(stack)에 저장되지만, 참조 타입의 데이터는 힙(heap) 영역에 저장된다.
  • 참조 타입의 변수는 힙 영역에 저장된 객체의 주소를 참조한다.
  • 참조 타입의 변수에서 ==와!= 연산자는 두 참조 변수가 같은 객체를 참조하는지 비교할 때 사용된다.
  • 객체의 값을 비교하려면 .equals() 메서드를 사용해야 한다.
String str1 = new String("Hello");
String str2 = new String("Hello");

System.out.println(str1 == str2);  // false, 서로 다른 객체를 참조
System.out.println(str1.equals(str2));  // true, 문자열의 내용이 같음
  • 참조 타입 변수는 null 값을 가질 수 있다.
  • 이는 어떠한 객체도 참조하지 않는 상태를 의미한다.
  • null 상태에서 객체의 메서드나 멤버에 접근하려고 하면 NullPointerException이 발생한다.
String str = null;
// str.length();  // NullPointerException 발생
  • String은 참조 타입으로, 문자열을 표현하는 데 사용된다.
  • 문자열 리터럴은 힙 영역의 문자열 상수 풀에 저장되며, 동일한 문자열 리터럴은 동일한 메모리 주소를 참조한다.
String s1 = "Hello";
String s2 = "Hello";
System.out.println(s1 == s2);  // true, 같은 리터럴은 동일한 메모리 주소를 참조

 

배열

  • 배열은 같은 타입의 여러 데이터를 하나의 변수로 묶어서 저장하는 자료구조이다.
  • 배열은 고정된 크기를 가지며, 인덱스를 사용해 요소에 접근할 수 있다.
  • 배열을 사용하려면 먼저 선언해야 한다.
  • 배열의 타입과 이름을 지정하고, 대괄호([])를 사용한다.
int[] numbers;
  • 배열은 new 키워드를 사용하여 생성한다. 배열의 크기를 지정해야 한다.
numbers = new int[5];
  • 배열의 길이는. length 속성을 통해 알 수 있다.
System.out.println("배열의 길이: " + numbers.length);
  • 자바 프로그램은 명령 라인에서 인수를 받아 배열로 저장할 수 있다.
  • main 메서드의 매개변수인 String[] args를 통해 입력값을 받는다.
public static void main(String[] args) {
    for (String arg : args) {
        System.out.println(arg);
    }
}
  • 다차원 배열은 배열의 배열이다.
  • 주로 2차원 배열이 많이 사용되며, 행과 열로 데이터를 관리한다.
int[][] matrix = new int[3][3];
matrix[0][0] = 1;
  • 배열은 객체를 참조할 수도 있다.
  • 객체를 담는 배열을 선언하고 각 요소에 객체를 할당할 수 있다.
String[] names = new String[3];
names[0] = "Alice";
names[1] = "Bob";
names[2] = "Charlie";
  • 배열을 복사할 때는 System.arraycopy() 메서드를 사용하거나 Arrays.copyOf() 메서드를 사용할 수 있다.
int[] original = {1, 2, 3};
int[] copy = new int[original.length];
System.arraycopy(original, 0, copy, 0, original.length);
  • 향상된 for문은 배열이나 컬렉션의 모든 요소를 순차적으로 반복할 때 사용된다.
for (int number : numbers) {
    System.out.println(number);
}

 

열거 타입

  • 열거 타입(enum)은 여러 개의 상수값을 정의하는 데 사용된다.
  • 열거형은 코드의 가독성을 높이고 특정 값만 허용하도록 강제할 때 유용하다.
enum Day {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
  • 열거형 타입으로 변수를 선언하고 사용할 수 있다.
  • 열거형을 통해 코드를 보다 직관적이고 안전하게 만들 수 있다.
Day today = Day.WEDNESDAY;
System.out.println("오늘은: " + today);
  • 열거형에는 몇 가지 기본 메서드가 포함되어 있다.
  • 예를 들어, values() 메서드를 사용하면 열거형에 정의된 모든 값을 배열로 반환할 수 있다.
for (Day day : Day.values()) {
    System.out.println(day);
}
  • switch문에서 열거형을 사용하면 코드의 가독성을 높이고, 특정 열거형 값에 따라 분기 처리를 할 수 있다.
Day today = Day.MONDAY;
switch (today) {
    case MONDAY:
        System.out.println("월요일입니다.");
        break;
    case FRIDAY:
        System.out.println("금요일입니다.");
        break;
    default:
        System.out.println("기타 요일입니다.");
}

혹시 이해가 어려우시다면, 이전 글을 먼저 참고해보시면 좋을 것 같습니다.

 

JAVA 변수, 연산자, 데이터 입출력

안녕하세요! 문과 출신 방구석 데이터 전문가와 함께하는 JAVA 기초 글에 오신걸 환영합니다. 지난 글까지는 파이썬과 C언어를 다뤄보았는데 JAVA는 C언어와 비슷한 부분이 많아서 C언어를 잘 아시

actshiny.com

JAVA 기초 조건문, 반복문, 참조 타입(배열) 소개 이미지

반응형