Chapter 3. 연산자
1. 연산자와 피연산자
- 연산자: 계산을 수행하는 기호 (예: +, -, *)
- 피연산자: 연산자의 대상이 되는 값 (예: 5, 10)
int x = 5;
int y = 10;
int z = x + y; // 5(피연산자) + 10(피연산자)
System.out.println(z); // 출력값: 15
2. 연산자 종류
- 산술 연산자
- 사칙연산 및 비트연산 포함 (+, -, *, /, %)
System.out.println(4 + 2); // 6
System.out.println(4 - 2); // 2
System.out.println(4 * 2); // 8
System.out.println(4 / 2); // 2
System.out.println(5 % 2); // 1
- 비교 연산자
- 값의 크기와 같음을 비교 (>, <, >=, <=, ==, !=)
System.out.println(10 > 9); // true
System.out.println(10 == 10); // true
System.out.println(10 != 9); // true
- 논리 연산자
- boolean 값을 연결하여 참/거짓을 조합 (&&, ||, !)
boolean flag1 = true;
boolean flag2 = false;
System.out.println(flag1 && flag2); // false
System.out.println(flag1 || flag2); // true
System.out.println(!flag1); // false
- 대입 연산자
- 값을 변수에 대입하거나 변수에 연산한 값을 다시 대입 (+=, -=, *=, /=, %=, ++, --)
int number = 10;
number += 2;
System.out.println(number); // 12
- 기타 연산자
- 형변환 연산자: 타입을 변환
- 삼항 연산자: 조건에 따라 다른 값을 반환
- instance of 연산자: 객체가 특정 클래스의 인스턴스인지 확인
int intNumber = (int) 98.8;
boolean b = (1 == 2) ? true : false; // false
3. 연산자 우선순위
- 연산자의 우선순위에 따라 계산 순서가 결정됨 (산술 > 비교 > 논리 > 대입)
- 괄호를 사용하여 우선순위를 명시적으로 지정 가능
boolean result = 2 + 2 * 2 > 5; // false
result = (2 + 2) * 2 > 5; // true
4. 산술변환
- 연산 전에 피연산자의 타입을 일치시킴
Chapter 4. 조건문과 반복문
1. 조건문
- if문
- 조건에 따라 실행되는 코드 블록을 결정함
- 기본 형태: if (조건) { 실행할 코드 }
int score = 85;
if (score > 80) {
System.out.println("Good job!");
}
- if-else문
- 조건이 참일 때와 거짓일 때 실행되는 코드 블록을 구분
int score = 75;
if (score > 80) {
System.out.println("Good job!");
} else {
System.out.println("Try harder!");
}
- if-else if-else문
- 여러 조건을 순차적으로 검사
int score = 85;
if (score > 90) {
System.out.println("Excellent!");
} else if (score > 80) {
System.out.println("Good job!");
} else {
System.out.println("Try harder!");
}
- switch문
- 변수의 값에 따라 실행되는 코드 블록을 결정
- bireak; 를 반드시 넣어야함
int day = 3;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
default:
System.out.println("Invalid day");
break;
}
2. 반복문
- for문
- 특정 조건에 따라 연산을 반복해서 수행하고 싶을때 사용하는 문
- 고정된 횟수만큼 반복
for (int i = 0; i < 5; i++) {
System.out.println("Hello, world!");
}
- while문
- 조건이 참일 동안 반복
- 무한루프 조심
int number=0;
while(number<3){//number<3인 동안~
number++;//0+1. . .
System.out.println(number+"출력");
}
//1출력 2출력 3출력
- do-while문
- do를 한 후에 while
- 최소 한 번은 실행 후 조건이 참일 동안 반복
int number = 4;
do{
//이 로직을 먼저 수행
System.out.println(number + "출력!");
}while(number < 3);
//4출력
- break문
- 가장 가까운 블록의 for문 또는 while, switch 문을 중단함
int number=0;
while(number<3){
number++;
if(number==2){
break;
}
System.out.println(number+"출력");
}
//1출력
for(int i=0; i<10; i++){
System.out.print("i:" + i);
if(i == 2){
break; //i가 2일 때, 가장 바깥 반복문이 종료
}
for(int j=0; j<10; j++){
System.out.print("j:" + j);
if(j == 2) {
break; //j가 2일 때, 안쪽 반복문이 종료
}
}
}
//i:0j:0j:1j:2i:1j:0j:1j:2i:2
//countinue
int number=0;
while(number<3){
number++;
if(number==2){
continue;
}
System.out.print(number+"출력!");
}
//1출력!3출력!
Chapter 5. 배열
1. 배열 선언 및 초기화
- 동일한 데이터 타입의 집합을 저장
int[] numbers = new int[5];
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
numbers[4] = 50;
2. 배열 요소 접근 및 사용
- 인덱스를 통해 접근
int[] numbers = {10, 20, 30, 40, 50};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
3. 다차원 배열
- 배열의 배열, 행과 열로 구성
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
System.out.println(matrix[0][0]); // 1
Chapter 6. 컬렉션
1. List 인터페이스
- 요소의 순서를 유지하며 중복 허용
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
for (String fruit : list) {
System.out.println(fruit);
}
2. Set 인터페이스
- 중복을 허용하지 않음
Set<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Cherry");
for (String fruit : set) {
System.out.println(fruit);
}
3. Map 인터페이스
- 키와 값의 쌍으로 저장
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
map.put("Cherry", 3);
for (String key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}