🧩 연산자
1) 산술연산자(+ ,- ,* ,/ ,%)
- int a = 10;
int b = 3; - 기본적인 사칙연산
// 더하기(+)
int sum = a + b;
System.out.println("sum = " + sum);
sum = 13 // run
// 빼기(-)
int sub = a - b;
System.out.println("sub = " + sub);
sub = 7 // run
// 곱하기(*)
int mul = a * b;
System.out.println("mul = " + mul);
mul = 30 // run
- 나눗셈
int div = a / b;
System.out.println("div = " + div);
// a / 3.0
double div2 = a / 3.0;
System.out.println("div2 = " + div2);
div = 3
div2 = 3.3333333333333335
- 모듈러 연산자(나머지 연산) %
1) 모듈러 연산
int mod = 10 % 3;
System.out.println("mod = " + mod);
int mod2 = 15 % 4;
System.out.println("mod2 = " + mod2);
int mod3 = 20 % 7;
System.out.println("mod3 = " + mod3);
mod = 1
mod2 = 3
mod3 = 6 // run
2) 시간 연산
int mod4 = (10+5) % 12;
System.out.println("mod4 = " + mod4);
mod4 = 3 // run
3) 짝수 홀수 연산(0=짝, 1=홀)
int mod5 = 6%2;
System.out.println("mod5 = " + mod5);
int mod6 = 7%2;
System.out.println("mod6 = " + mod6);
mod5 = 0
mod6 = 1 // run
2) 대입연산자(=)
- int num = 5;
- 복합 대입 연산자( +=, -=, *=, /=, %= )
num += 3; // num = num + 3
System.out.println("num = " + num);
num -= 2; // num = num -2
System.out.println("num = " + num);
num *= 2;
System.out.println("num = " + num);
num /= 3;
System.out.println("num = " + num);
num %= 3;
System.out.println("num = " + num);
num = 8
num = 6
num = 12
num = 4
num = 1 // run
3) 증감연산자
- 증감연산자
num = 1;
num++; // 1씩 증가
System.out.println("num = " + num);
num++;
System.out.println("num = " + num);
num--; // 1씩 감소
num--;
System.out.println("num = " + num);
num = 2
num = 3
num = 1 // run
- 전위연산(++i): 연산 후 값이 활용됨
int intBox = 5;
System.out.println("(++intBox) = " + (++intBox));
(++intBox) = 6 // run
- 후위연산(i++) - 사용 후 연산
int intBox2 =5;
System.out.println("(intBox2++) = " + (intBox2++));
System.out.println("intBox2 = " + intBox2);
(intBox2++) = 5
intBox2 = 6 // run
4) 비교연산자
- 같은연산자(=): 같으면 true, 다르면 false
System.out.println("10==10:"+(10==10));
10==10:true // run
- 다른연산자(!=): 다르면 true, 같으면 false
System.out.println("10 != 5:"+(10 != 5));
10 != 5:true // run
- 크기 비교 연산자
System.out.println("10 < 5:"+(10 < 5)); //false
System.out.println("10 >= 10:"+(10 >=10)); // true
System.out.println("10 <= 5:"+(10<=5)); //false
10 < 5:false
10 >= 10:true
10 <= 5:false // run
5) 논리연산자
- AND 연산(&&): 두 조건이 모두 참일 때 true
System.out.println("true && true:"+(true && true));
System.out.println("true && false:"+(true && false));
true && true:true
true && false:false // run
- OR 연산(||): 두 조건 중 하나라도 참이라면 true
System.out.println("false || true:"+(false || true));
false || true:true // run
- NOT 연산자(!): 참 > 거짓 / 거짓 > 참
System.out.println("!true:"+(!true));
!true:false // run
🧩 조건문
1) 조건문(if / else if / else)
String Light = "빨간불";
if (Light.equals("초록불"))// true 일 때 명령문 실행, equals=문자열끼리 비교
System.out.println("건너세요");
else if (Light.equals("노란불"))
System.out.println("주의하세요");
else { // false 일 때
System.out.println("멈추세요");
}
System.out.println("...");
초록불 = 건너세요 ...
노란불 = 주의하세요 ...
빨간불 = 멈추세요 ... // run
2) switch 문 - switch (단일값)
int number = 3;
switch(number){
case 1:
System.out.println("1입니다.");
break; // 탈출 버튼
case 2:
System.out.println("2입니다");
break;
default:
System.out.println("1도 아니고 2도 아닙니다");
1 = 1입니다
2 = 2입니다
3 = 1도 아니고 2도 아닙니다 // run
🧩 반복문
1) for 반복문
for (int i = 1; i <= 10; i++) {
System.out.println("안녕하세요!");
}
10번 반복 x10 // run
2) break 문(탈출버튼): for 문 + break
- 반복을 벗어나는 문구
int customers = 5;
for (int i = 1; i <=customers; i++){
if (i==4){
break;
}
System.out.println(i+"번째 손님 안녕하세요");
// run
1번째 손님 안녕하세요
2번째 손님 안녕하세요
3번째 손님 안녕하세요
3) continue 문(건너뛰기): for 문 + continue
- 특정 회차의 반복을 건너뛸 때 사용
int customers = 5;
for (int i = 1; i <=customers; i++){
if (i==4){
break;
}
if(i==2){
continue;
}
System.out.println(i+"번째 손님 안녕하세요");
1번째 손님 안녕하세요
3번째 손님 안녕하세요 // run
4) while 반복문
- 종결조건식이 true일 때 반복 / 종결조건이 거짓이 될 때까지 반복
while (종결조건) {
반복할 명령문;
}
- i++ : 무한루프 발생을 막아줌
int i =1;
while (i <= 10){
System.out.println("안녕하세요");
i++; // 무한루프 발생을 막아줌
5) do-while 반복문
- 종결 조건을 반복 후에 체크
do {
반복할 명령문..
} while (종결 조건)
- i++ : 무한루프 발생을 막아줌
int i =1;
do {
System.out.println("안녕하세요");
i++;
} while(i<=10);
}
🧩 배열
1) 배열
- 비슷한 비슷한 주제의 데이터를 그룹으로 묶어서 표현하는 방법
- 자료형[] 변수이름 = new 자료형[배열의길이];
public static void main(String[] args) {
String name1 = "은지";
String name2 = "태안";
// ...
String[] adventureList = {"은지", "태안","..."};
2) 배열 선언 방법
- 배열의 이름 / 길이 설정을 다른 줄에서 설정
- 정수형 배열 arr 선언
int[] arr;
arr = new int[5];
- 배열 길이 할당
arr = new int[5];
// arr = [] [] [] [] []
- 배열 선언과 길이 동시에 할당배열 선언과 동시에 배열요소 할당
int[] arr ={10, 20, 30, 40, 50};
// [10] ... [50]
- 배열의 길이 구하기
int arrLength = arr.length;
System.out.println("arrLength ="+arrLength);
arrLength =5 // run
- 문자열 배열 선언
// 길이가 5인 문자열 배열 arrA 를 선언
String[] arrA = new String[5];
- 논리형 배열 선언
// 길이가 3인 논리형 배열 arrB 를 선언
boolean[] arrB = new boolean[3];
3) 배열의 요소

4) index

- index 시작은 0
int[] arr ={10, 20, 30, 40, 50};
System.out.println("배열의 1번째 요소 = " + arr[0]);
System.out.println("배열의 2번째 요소 = " + arr[1]);
System.out.println("배열의 3번째 요소 = " + arr[2]);
System.out.println("배열의 4번째 요소 = " + arr[3]);
System.out.println("배열의 5번째 요소 = " + arr[4]);
- 주의사항(에러)
int[] arr = {10, 20, 30, 40, 50}; // 5개의 길이를 가진 배열
System.out.println("배열의 6번째 요소 = " + arr[5]); // ❌ 에러 발생
5) 배열 정보 삽입 수정(index 활용)

- int[] arr = new int[5];
arr[0] = 100; // ✅ 1번째 요소를 100로 설정
arr[1] = 200; // ✅ 2번째 요소를 200로 설정
arr[2] = 300; // ✅ 3번째 요소를 300로 설정
arr[3] = 400; // ✅ 4번째 요소를 400로 설정
arr[4] = 500; // ✅ 5번째 요소를 500로 설정
arr[5] = 600; // ❌ 접근 불가
System.out.println("배열의 1번째 요소는 0번째 인덱스: " + arr[0]); // 100
System.out.println("배열의 2번째 요소는 1번째 인덱스: " + arr[1]); // 200
System.out.println("배열의 3번째 요소는 2번째 인덱스: " + arr[2]); // 300
System.out.println("배열의 4번째 요소는 3번째 인덱스: " + arr[3]); // 400
System.out.println("배열의 5번째 요소는 4번째 인덱스: " + arr[4]); // 500
6) 배열 탐색(index 활용)
- 반복문을 통해 배열 탐색
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
// ✅ 숫자대신 변수i 를 인덱스 활용
System.out.println("numbers[" + i + "] = " + arr[i]);
}
- for 문
for(배열의요소 : 배열) {
명령문;
}
int[] arr = {100, 200, 300, 400, 500};
for (int a : arr) {
System.out.println("배열의 각 요소 = " + a);
}
7) 2차원 배열
- 2차원배열은 2차원적인 정보를 표현
- 첫번째 인덱스: 행 = 가로 방향
- 두번째 인덱스: 열 = 세로

boolean[][] board = new boolean[2][2]; // ✅ 2 x 2 2차원 배열 선언
boolean[][] board = {
{true, false}, // 0행의 0열, 0행의 1열,
{false, true} // 1행의 0열, 1행의 1열
};

- 2차원 배열 직접 탐색
System.out.println(board[0][0]); // true 까만돌
System.out.println(board[0][1]); // false 흰돌
System.out.println(board[1][0]); // false 흰돌
System.out.println(board[1][1]); // true 까만돌
🧩 Method
1) method
- 작업을 표현하는 방법
- 구조
public class 클래스이름 {
[반환자료형] [메서드이름](매개변수..) {
작업 명령문들...
}
}
- 호출부, 선언부

- 지역변수
- {} 영역에서만 생존가능
- 중괄호 안에 선언된 변수는 중괄호 안에서만 생존
2) 선언부


- 메서드 이름
- 카멜케이스(camelCase)를 사용
- 동사
- 예시: sum(), printMessage(), findUserById()
- 매개변수
- 정수만 가능
- 데이터를 전달받는 공간(변수)
- 여러 개를 사용할 수 있으며 쉼표(,)로 구분
- 작업내용
- 메서드가 실행할 명령문을 {} 중괄호 안에 작성
- 작성된 코드가 첫 번째 줄부터 실행
- 결과 반환: return
- 반환값 / 반환자료형 설명
- 반환값: 작업한 결과를 반환해야 할 경우 return 키워드를 사용 / 호출된 곳으로 이동
- 반환 자료형
> 반환값이 있는 경우 → 반환되는 데이터의 자료형(int, String, double 등
> 반환값이 없는 경우 → void
3) 호출부
- return: 변환 값이 있는 데이터
public class Calculator {
int plus(int value1, int value2){
int result = value1 + value2;
return result;
}
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator(); // 객체 소환
int result = calculator.puls(3,5); // 호출부
System.out.println("결과는 :"+result);
}
- void: 반환 데이터가 없는 메서드
public class Calculator {
void plus(int value1, value2) {
int result = value1 + value2;
System.out.println("계산결과는 " + result + "입니다.");
}
public class Main {
public static void main(String[] args {
Calculator calculator = new Calculator();
calculator.sum(1, 2); // 받아서 처리하지 않음
}
Java 문법(1)
'🔌 SPARTA > Courses' 카테고리의 다른 글
| 객체지향 특징 (0) | 2026.01.14 |
|---|---|
| 객체지향 이해하기 (0) | 2026.01.09 |
| Java 기초문법(1) (0) | 2026.01.08 |
| GIT (0) | 2026.01.06 |
| HTTP와 REST API (1) | 2026.01.05 |