챕터 2: Java 기본 문법
Java는 객체 지향 프로그래밍 언어로, 다양한 기능을 제공하여 안정적이고 유지보수가 쉬운 프로그램을 작성할 수 있게 해줍니다. 이 장에서는 Java의 기본 문법과 주요 개념을 다양한 코드와 예시를 통해 상세히 설명합니다.
2.1 변수와 데이터 타입
변수는 데이터를 저장하는 공간입니다. Java는 여러 가지 데이터 타입을 제공합니다.
2.1.1 기본 데이터 타입
Java의 기본 데이터 타입에는 int, double, char, boolean 등이 있습니다.
예제: 기본 데이터 타입
public class DataTypesExample {
public static void main(String[] args) {
int age = 25; // 정수형 변수 선언 및 초기화
double salary = 3456.78; // 실수형 변수 선언 및 초기화
char grade = 'A'; // 문자형 변수 선언 및 초기화
boolean isEmployed = true; // 논리형 변수 선언 및 초기화
// 변수 값 출력
System.out.println("Age: " + age);
System.out.println("Salary: " + salary);
System.out.println("Grade: " + grade);
System.out.println("Is Employed: " + isEmployed);
}
}
설명:
- int: 정수를 저장하는 데이터 타입입니다.
- double: 실수를 저장하는 데이터 타입입니다.
- char: 단일 문자를 저장하는 데이터 타입입니다.
- boolean: 참(true) 또는 거짓(false) 값을 저장하는 데이터 타입입니다.
2.2 연산자
연산자는 변수와 값에 대해 산술, 논리 및 기타 연산을 수행하는 데 사용됩니다.
2.2.1 산술 연산자
산술 연산자는 기본적인 수학 연산을 수행합니다.
예제: 산술 연산자
public class ArithmeticOperatorsExample {
public static void main(String[] args) {
int a = 10;
int b = 5;
// 산술 연산 수행
System.out.println("a + b = " + (a + b)); // 덧셈
System.out.println("a - b = " + (a - b)); // 뺄셈
System.out.println("a * b = " + (a * b)); // 곱셈
System.out.println("a / b = " + (a / b)); // 나눗셈
System.out.println("a % b = " + (a % b)); // 나머지
}
}
설명:
- +: 두 값을 더합니다.
- -: 두 값의 차를 구합니다.
- *: 두 값을 곱합니다.
- /: 두 값을 나눕니다.
- %: 두 값의 나머지를 구합니다.
2.3 제어문
제어문은 프로그램의 흐름을 제어하는 데 사용됩니다.
2.3.1 조건문
조건문은 주어진 조건에 따라 실행할 코드 블록을 결정합니다.
예제: if-else 문
public class IfElseExample {
public static void main(String[] args) {
int number = 10;
// 조건문 사용
if (number > 0) {
System.out.println("Number is positive");
} else if (number < 0) {
System.out.println("Number is negative");
} else {
System.out.println("Number is zero");
}
}
}
설명:
- if 문: 조건이 참일 때 실행할 코드를 지정합니다.
- else if 문: 앞의 조건이 거짓이고, 이 조건이 참일 때 실행할 코드를 지정합니다.
- else 문: 모든 조건이 거짓일 때 실행할 코드를 지정합니다.
예제: switch 문
public class SwitchExample {
public static void main(String[] args) {
int day = 3;
// switch 문 사용
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("Invalid day");
break;
}
}
}
설명:
- switch 문: 주어진 변수의 값에 따라 실행할 코드 블록을 결정합니다.
- case 문: switch 문에서 각 경우를 정의합니다.
- break 문: 각 case 블록의 끝에서 사용하여 switch 문을 종료합니다.
- default 문: 모든 case가 일치하지 않을 때 실행할 코드를 지정합니다.
2.3.2 반복문
반복문은 특정 조건이 참인 동안 코드 블록을 반복 실행합니다.
예제: for 문
public class ForLoopExample {
public static void main(String[] args) {
// for 문 사용
for (int i = 0; i < 5; i++) {
System.out.println("i = " + i);
}
}
}
설명:
- for 문: 반복 횟수가 정해진 경우에 사용됩니다. 초기화, 조건식, 증감식을 포함합니다.
- i++: i의 값을 1씩 증가시킵니다.
예제: while 문
public class WhileLoopExample {
public static void main(String[] args) {
int i = 0;
// while 문 사용
while (i < 5) {
System.out.println("i = " + i);
i++;
}
}
}
설명:
- while 문: 조건식이 참인 동안 반복 실행합니다.
- i++: i의 값을 1씩 증가시킵니다.
예제: do-while 문
public class DoWhileLoopExample {
public static void main(String[] args) {
int i = 0;
// do-while 문 사용
do {
System.out.println("i = " + i);
i++;
} while (i < 5);
}
}
설명:
- do-while 문: 먼저 코드를 한 번 실행한 후 조건식이 참인 동안 반복 실행합니다.
2.4 배열
배열은 동일한 데이터 타입의 값들을 저장할 수 있는 자료 구조입니다.
예제: 배열 선언 및 초기화
public class ArrayExample {
public static void main(String[] args) {
// 배열 선언 및 초기화
int[] numbers = {1, 2, 3, 4, 5};
// 배열 요소 출력
for (int i = 0; i < numbers.length; i++) {
System.out.println("numbers[" + i + "] = " + numbers[i]);
}
}
}
설명:
- 배열 선언 및 초기화: int[] numbers = {1, 2, 3, 4, 5};는 정수형 배열을 선언하고 초기화합니다.
- 배열 요소 접근: 배열의 각 요소에 접근하려면 인덱스를 사용합니다. 배열의 인덱스는 0부터 시작합니다.
- numbers.length: 배열의 길이를 반환합니다.
추가 예제: 2차원 배열
public class TwoDimensionalArrayExample {
public static void main(String[] args) {
// 2차원 배열 선언 및 초기화
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 2차원 배열 요소 출력
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.println("matrix[" + i + "][" + j + "] = " + matrix[i][j]);
}
}
}
}
설명:
- 2차원 배열 선언 및 초기화: int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};는 2차원 배열을 선언하고 초기화합니다.
- 2차원 배열 요소 접근: 2차원 배열의 각 요소에 접근하려면 두 개의 인덱스를 사용합니다. 첫 번째 인덱스는 행을 나타내고, 두 번째 인덱스는 열을 나타냅니다.
2.5 문자열
문자열은 문자의 연속으로, Java에서는 String 클래스를 사용하여 문자열을 처리합니다.
예제: 문자열 조작
public class StringExample {
public static void main(String[] args) {
// 문자열 선언
String message = "Hello, World!";
// 문자열 길이 출력
System.out.println("Length: " + message.length());
// 문자열의 특정 문자 접근
System.out.println("Character at index 1: " + message.charAt(1));
// 문자열의 부분 문자열 추출
System.out.println("Substring from index 7 to 12: " + message.substring(7, 12));
// 문자열 대체
System.out.println("Replace 'World' with 'Java': " + message.replace("World", "Java"));
// 문자열 분할
String[] words = message.split(", ");
System.out.println("First word: " + words[0]);
System.out.println("Second word: " + words[1]);
}
}
설명:
- length 메서드: 문자열의 길이를 반환합니다.
- charAt 메서드: 문자열의 특정 인덱스에 있는 문자를 반환합니다.
- substring 메서드: 문자열의 부분 문자열을 추출합니다.
- replace 메서드: 문자열의 특정 부분을 다른 문자열로 대체합니다.
- split 메서드: 문자열을 주어진 구분자를 기준으로 분할하여 배열로 반환합니다.
추가 예제: 문자열 비교
public class StringComparisonExample {
public static void main(String[] args) {
// 문자열 선언
String str1 = "Java";
String str2 = "Java";
String str3 = new String("Java");
// 문자열 비교
System.out.println("str1 == str2: " + (str1 == str2)); // 참조 비교
System.out.println("str1.equals(str2): " + str1.equals(str2)); // 값 비교
System.out.println("str1 == str3: " + (str1 == str3)); // 참조 비교
System.out.println("str1.equals(str3): " + str1.equals(str3)); // 값 비교
}
}
설명:
- 참조 비교 (==): 두 문자열 객체의 참조가 동일한지 비교합니다.
- 값 비교 (equals 메서드): 두 문자열의 실제 값이 동일한지 비교합니다.
이로써 Java의 기본 문법에 대해 자세히 설명하고, 각 개념을 코드와 예시를 통해 설명했습니다. 이를 통해 변수와 데이터 타입, 연산자, 제어문, 배열, 문자열 등의 기본 개념과 사용법을 이해하고 활용할 수 있게 됩니다. 다음 챕터에서는 Java의 객체 지향 프로그래밍 개념을 다루겠습니다.
'IT 강좌(IT Lectures) > Java' 카테고리의 다른 글
5강. Java API 활용 (0) | 2024.06.22 |
---|---|
4강. 기본 클래스 사용 (0) | 2024.06.21 |
3강. 객체 지향 프로그래밍 (0) | 2024.06.20 |
1강. 시작하기 (0) | 2024.06.18 |
자바의 역사 (0) | 2023.05.23 |