1. 오늘 학습 주제
조건문, 반복문, 분기문을 통해 실행 흐름을 제어하는 방식과, 배열을 선언하고 반복문으로 데이터를 처리하는 구조를 익혔다.
- if, if-else, if-else-if 조건문 사용하기
- switch와 향상된 switch 문법 이해하기
- for, while, do-while 반복문 사용하기
- 중첩 반복문으로 구구단과 별 출력하기
- break, continue로 반복 흐름 제어하기
- 배열 선언, 할당, 초기화 방식 익히기
- 배열과 반복문을 함께 사용해 합계와 평균 구하기
2. 조건문
조건문은 특정 조건이 참인지 거짓인지에 따라 다른 코드를 실행할 때 사용한다.
if, 중첩 if, if-else, if-else-if, switch를 학습했다.
if(num % 2 == 0) {
System.out.println("입력한 숫자는 짝수입니다.");
} else {
System.out.println("입력한 정수는 홀수입니다.");
}
- if는 조건이 참일 때만 실행된다.
- if-else는 참과 거짓일 때 실행 흐름을 나눌 수 있다.
- if-else-if는 여러 조건을 순차적으로 비교할 때 사용한다.
- 중첩 if와 논리 연산자를 함께 사용하면 더 복잡한 조건도 처리할 수 있다.
성적 계산 예제도 확인했다.
if(point >= 90) {
grade = "A";
if(point >= 95) { grade += "+"; }
} else if(point >= 80) {
grade = "B";
}
- 조건을 구간별로 나누어 학점을 계산할 수 있다.
- if 안에 또 다른 if를 넣어 세부 조건도 처리할 수 있다.
3. switch문
여러 경우의 수 중 하나를 선택해야 할 때 switch를 사용할 수 있다.
사칙연산 계산기 예제를 통해 switch와 향상된 switch를 함께 확인했다.
switch (op) {
case '+':
result = first + second;
break;
case '-':
result = first - second;
break;
default:
System.out.println("잘못된 연산 기호를 입력했습니다.");
return;
}
int modernResult = switch (op) {
case '+' -> first + second;
case '-' -> first - second;
default -> {
System.out.println("잘못된 기호입니다.");
yield 0;
}
};
- switch는 값에 따라 실행할 코드를 분기할 수 있다.
- 각 case 뒤에 break를 넣어야 다음 case로 넘어가지 않는다.
- 향상된 switch는 더 간결하게 값을 반환할 수 있다.
- Scanner에서 문자 입력을 받을 때 next().charAt(0)을 사용할 수 있다.
4. 반복문
반복문은 같은 작업을 여러 번 실행할 때 사용한다.
for, while, do-while을 학습했다.
for (int i = 1; i <= 5; i++) {
System.out.print(i + "번째 학생의 이름 : ");
}
- for문은 반복 횟수가 정해져 있을 때 사용하기 좋다.
- 초기식, 조건식, 증감식을 함께 작성한다.
합계 계산도 반복문으로 처리했다.
int sum = 0;
for (int i = 1; i <= num; i++) {
sum += i;
}
- 반복문을 사용하면 누적 합계 같은 계산을 쉽게 할 수 있다.
- sum += i처럼 누적 패턴을 자주 사용한다.
5. 중첩 반복문
반복문 안에 또 다른 반복문을 넣으면 2차원적인 출력이나 패턴을 만들 수 있다.
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.println(i + " * " + j + " = " + i * j);
}
}
- 바깥쪽 반복문은 큰 단위의 반복을 담당한다.
- 안쪽 반복문은 그 안에서 세부 반복을 담당한다.
- 구구단이나 별 찍기 같은 문제에서 자주 사용된다.
for (int i = 1; i <= row; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
- 줄 수와 별 개수의 관계를 반복문으로 표현할 수 있다.
- 중첩 반복문은 출력 패턴을 이해하는 데 중요하다.
6. while과 do-while
while은 조건을 먼저 검사하고, do-while은 일단 한 번 실행한 뒤 조건을 검사한다.
while(!str.equals("exit")) {
str = sc.nextLine();
}
do {
str = sc.nextLine();
} while (!str.equals("exit"));
- while은 조건이 처음부터 거짓이면 한 번도 실행되지 않을 수 있다.
- do-while은 최소 한 번은 반드시 실행된다.
- 문자열 비교는 ==가 아니라 .equals()를 사용해야 한다.
7. break와 continue
반복문 안에서는 break와 continue를 사용해 흐름을 세밀하게 제어할 수 있다.
if(i == 10) {
break;
}
if(!(i % 4 == 0 && i % 5 == 0)) {
continue;
}
- break는 반복문 자체를 종료한다.
- continue는 현재 회차만 건너뛰고 다음 반복으로 넘어간다.
- 중첩 반복문에서는 어느 반복문에 영향을 주는지 잘 이해해야 한다.
이름표가 붙은 break도 확인했다.
break ohgiraffers;
- 라벨을 사용하면 바깥 반복문까지 한 번에 빠져나올 수 있다.
- 다만 가독성이 떨어질 수 있어 자주 권장되지는 않는다.
- 대신 flag 변수를 사용해 바깥 반복문을 제어하는 방식도 배웠다.
8. 배열의 개념
배열은 같은 자료형의 값을 여러 개 묶어서 저장하는 구조이다.
여러 변수를 따로 만들지 않고 하나의 이름으로 관리할 수 있다는 점이 중요하다.
int[] scores = new int[5];
- 배열은 동일한 자료형의 데이터만 저장할 수 있다.
- new를 사용해 heap 영역에 배열 공간을 할당한다.
- 인덱스는 0부터 시작한다.
배열을 사용하면 합계와 평균 계산도 훨씬 간단해진다.
for(int i = 0; i < scores.length; i++) {
sum2 += scores[i];
}
- 반복문과 배열을 함께 사용하면 여러 데이터를 쉽게 처리할 수 있다.
- length를 사용하면 배열 길이를 기준으로 안전하게 반복할 수 있다.
9. 배열 선언과 초기화
배열은 여러 방식으로 선언하고 초기화할 수 있다.
int[] iarr = new int[5];
int[] iarr3 = new int[]{11, 22, 33, 44, 55};
int[] iarr4 = {11, 22, 33, 44, 55};
- 선언 후 나중에 할당할 수도 있다.
- 선언과 동시에 new로 생성할 수도 있다.
- 초기값을 바로 넣는 경우 {} 형태를 사용할 수 있다.
- new 생략은 선언과 동시에 초기화할 때만 가능하다.
배열의 기본값도 확인했다.
- 정수형 배열은 기본값이 0이다.
- 실수형 배열은 0.0이다.
- 논리형 배열은 false이다.
- 참조형 배열은 null이다.
10. 배열과 인덱스
배열은 인덱스로 각 요소에 접근한다.
iarr[0] = 10;
iarr[1] = 20;
- 첫 번째 요소는 0번 인덱스에 저장된다.
- 존재하지 않는 인덱스에 접근하면 오류가 발생한다.
- 배열 길이보다 작은 범위에서만 접근해야 한다.
문자열 배열도 다뤘다.
String[] sarr = {"apple", "banana", "orange"};
- 배열은 기본 자료형뿐 아니라 문자열 같은 참조형도 저장할 수 있다.
- 같은 방식으로 반복문을 사용해 출력할 수 있다.
11. 실습 흐름 정리
11.1 제어문
- 짝수/홀수 판별
- 양수이면서 짝수인지 조건 판단
- 점수에 따른 학점 계산
- switch를 활용한 사칙연산 처리
- for, while, do-while 반복 구조 확인
- 구구단과 별 찍기 출력
- break, continue, flag 변수로 흐름 제어
11.2 배열
- 배열의 필요성과 개념 이해
- 배열 선언, 할당, 초기화 방식 학습
- 기본값 확인
- 반복문으로 배열 요소 출력
- 점수 합계와 평균 계산 구조 이해
- 5명의 점수를 입력받는 배열 실습 틀 확인
12. 오늘 배운 핵심 정리
- 조건문은 상황에 따라 실행 흐름을 나누기 위해 사용한다.
- if, if-else, if-else-if, switch는 각각 쓰임이 다르다.
- switch는 특정 값에 따라 여러 경우를 깔끔하게 처리할 수 있다.
- for문은 반복 횟수가 명확할 때 유용하다.
- while은 조건을 먼저 검사하고, do-while은 한 번 실행 후 조건을 검사한다.
- break는 반복문을 종료하고, continue는 현재 반복만 건너뛴다.
- 중첩 반복문은 구구단이나 별 출력 같은 패턴 문제에 자주 사용된다.
- 배열은 같은 자료형의 여러 값을 하나로 묶어 관리할 수 있게 해준다.
- 배열의 인덱스는 0부터 시작하며, length를 활용해 순회할 수 있다.
- 배열과 반복문을 함께 사용하면 합계, 평균 같은 처리를 훨씬 효율적으로 할 수 있다.
'TIL > [TIL]' 카테고리의 다른 글
| [TIL]추상화, DTO, 생성자, 메서드 매개변수와 오버로딩 (0) | 2026.05.04 |
|---|---|
| [TIL]2차원 배열, 배열 복사와 정렬, 클래스와 객체, 캡슐화 (0) | 2026.05.01 |
| [TIL]Java 기초 문법, 연산자, 메서드와 패키지/임포트 (0) | 2026.04.29 |
| [TIL]Java Literal과 자료형 연산 이해 (0) | 2026.04.28 |
| [TIL]Mini Cart 프로젝트, json-server, API Layer 분리, Zustand persist (0) | 2026.04.28 |