🚩Hello Java!
public class Main {
public static void main(String[] args) {
//TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
// to see how IntelliJ IDEA suggests fixing it.
System.out.printf("Hello and welcome!");
new MyNewClass();
for (int i = 1; i <= 5; i++) {
//TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
// for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
System.out.println("i = " + i);
}
}
}
🚩변수
package chapter1.variable;
public class Main {
public static void main(String[] args) {
// [자료형] [변수이름];
// 정수형
int a;
a = 1;
a = 2;
System.out.println("a = " + a);
// 논리형
boolean booleanBox = true;
booleanBox = false;
System.out.println("booleanBox = " + booleanBox);
// 문자형
char charBox = 'a';
charBox = 'b';
System.out.println("charBox = " + charBox);
// 큰 정수형
long longBox = 1;
longBox = 2;
System.out.println("longBox = " + longBox);
// 실수형
float floatBox = 0.12345678f;
floatBox = 0.1234567890f;
System.out.println("floatBox = " + floatBox);
double doubleBox = 0.1234567890;
System.out.println("doubleBox = " + doubleBox);
// 캐스팅(Casting)
// 다운캐스팅: 큰 데이터를 -> 작은 상자
double bigBox = 10.123;
int smallBox = (int) bigBox;
System.out.println("smallBox = " + smallBox);
// 업캐스팅: 작은 데이터 -> 큰 상자
int smallBox2 = 10;
double bigBox2 = smallBox2;
System.out.println("bigBox2 = " + bigBox2);
// 문자열 데이터
char a1 = 'a';
String str = "안녕하세요!";
// 정수형
int a2 = 1;
long a3 = 1;
// 논리형
boolean b1 = true;
}
}
🚩입출력
package chapter1.io;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 출력
//println 사용
System.out.println("Hello");
System.out.println("Java");
// print 사용
System.out.print("안녕");
System.out.print("자바");
// 개행문자 포함 출력
System.out.println("Hello\nWorld!");
// 입력(Scanner)
// 스캐너 객체를 스캐너형 박스(scanner)
Scanner scanner = new Scanner(System.in);
// 정수형 데이터를 정수형 박스(a)
int a = 1;
// 문자열 입력받기
System.out.print("좋아하는 문장을 입력하세요: ");
String sentence = scanner.nextLine();
System.out.println("sentence = " + sentence);
// 정수형(int, long) 입력받기
System.out.print("정수(int)를 입력하세요: ");
int intBox = scanner.nextInt();
System.out.println("intBox = " + intBox);
System.out.print("정수(long)를 입력하세요: ");
long longBox = scanner.nextInt();
System.out.println("longBox = " + longBox);
// 소수점
System.out.print("소수점(double) 입력하세요: ");
double doubleBox = scanner.nextDouble();
System.out.println("doubleBox = " + doubleBox);
}
}
🚩연산자
package chapter1.operator;
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 3;
// 기본적인 사칙연산
int sum = a + b;
System.out.println("sum = " + sum);
int sub = a - b;
System.out.println("sub = " + sub);
int mul = a * b;
System.out.println("mul = " + mul);
// 나눗셈
// 10 / 3
int div = a / b;
System.out.println("div = " + div);
// a / 3.0
double div2 = a / 3.0;
System.out.println("div2 = " + div2);
// 모듈로 연산자(나머지 연산) - %
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);
// 시간 연산
int mod4 = (10 + 5) % 12;
System.out.println("mod4 = " + mod4);
// 짝수 홀수 연산
int mod5 = 6 % 2;
System.out.println("mod5 = " + mod5);
int mod6 = 7 % 2;
System.out.println("mod6 = " + mod6);
// 대입 연산자
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; // num = num * 2;
System.out.println("num = " + num);
num /= 3; // num = num / 3;
System.out.println("num = " + num);
num %= 3; // num = num % 3;
System.out.println("num = " + num);
// 증감 연산자
num = 1;
num++;
num++;
num--;
num--;
System.out.println("num = " + num);
// 전위 연산(++i) - 연산 후 값이 활용됩니다.
int intBox = 5;
System.out.println("(++intBox) = " + (++intBox));
// 후위 연산
int intBox2 = 5;
System.out.println("(intBox2++) = " + (intBox2++));
System.out.println("intBox2 = " + intBox2);
// 비교연산자
// 같음연산자(=) 같으면 true, 다르면 false
System.out.println("10 == 10: " + (10 == 10));
// 다름 연산자(!=) 다르면 true, 같으면 false
System.out.println("10 != 10: " + (10 != 10));
// 크기비교연산자
System.out.println("10 < 5: " + (10 < 5)); // false
System.out.println("10 >= 5: " + (10 >= 5)); // true
System.out.println("10 <= 5: " + (10 <= 5)); // false
// 논리연산자
// AND 연산(&&) - 두 조건이 모두 참일 때 true 반환합니다.
System.out.println("true && true: " + (true && true)); // true
int age = 20;
boolean isStudent = true;
System.out.println(":::" + ((age > 18) && isStudent));
// OR 연산(||) - 두 조건 중 하나라도 참이라면 true를 반환합니다.
System.out.println("false || true: " + (false || true)); // true
// NOT 연산자(!) - true -> false, false -> true.
System.out.println("!true: " + (!true));
// 연산자 우선순위
boolean flag = ((10 + 5) > 12) && true; // 그냥 솔직히 괄호를 적극적으로 이용하는 것이 좋음
System.out.println(flag);
// 실행 순서: (10 + 5) > 12 && true : 산술
// → 15 > 12 && true : 비교
// → true && true : 논리
// → flag = true 대입
// 논리 연산자 우선순위
boolean result = true || (false && false);
System.out.println("result = " + result);
boolean result2 = true || (false && (!false));
System.out.println("result2 = " + result2);
System.out.println(10 / 2 + 3 * 2 > 10 || false);
// 실행 순서: ((10 / 2) + (3 * 2)) > 10 || false
// → (5 + 6) > 10 || false
// → 11 > 10 || false
// → true || false
// → true
System.out.println(5 + 3 > 2 * 4 && 10 % 3 == 1);
// 실행 순서: (5 + 3) > (2 * 4) && (10 % 3) == 1
// → 8 > 8 && 1 == 1
// → false && true
// → false
// 문자열 비교(equals()를 활용한다)
String text1 = "hello";
String text2 = "Hello";
// 나쁜 예: (text == text2)
boolean isEqual = text1.equals(text2);
System.out.println("isEqual = " + isEqual);
}
}
package chapter1.operator;
import java.util.Scanner;
public class OperatorMain {
public static void main(String[] args) {
// 연산자 과제
int a = 15;
int b = 4;
// 1. 더하기
int sum = a + b;
// 1. 더하기 결과 출력
System.out.println("덧셈 결과: " + sum);
// 2. 빼기
int sub = a - b;
// 2. 빼기 결과 출력
System.out.println("뺄셈 결과: " + sub);
//....
int mul = a * b;
System.out.println("곱셈 결과: " + mul);
int div = a / b;
System.out.println("나눗셈 결과: " + div);
int mod = a % b;
System.out.println("나머지 결과: " + mod);
int x = 0;
int y = 1;
boolean isGreater = x > y;
boolean isSmaller = x < y;
boolean isEqual = x == y;
boolean isNotEqual = x != y;
System.out.println("x가 y보다 큰가? " + isGreater);
System.out.println("x가 y보다 작은가? " + isSmaller);
System.out.println("x와 y가 같은가? " + isEqual);
System.out.println("x와 y가 다른가? " + isNotEqual);
// TODO: 사용자로부터 첫 번째 문자열 입력받기
Scanner scanner = new Scanner(System.in);
System.out.print("첫 번째 문자열을 입력하세요: ");
String firstStr = scanner.nextLine();
// TODO: 사용자로부터 두 번째 문자열 입력받기
System.out.print("두 번째 문자열을 입력하세요: ");
String secondStr = scanner.nextLine();
// TODO: 문자열 비교 결과를 변수 result 에 저장
boolean result = firstStr.equals(secondStr);
// TODO: 결과 출력
System.out.println("두 문자열이 같은가요? " + result);
}
}
🚩조건문
package chapter1.condition;
public class Main {
public static void main(String[] args) {
// 조건문
// if문
// String light = "노란불";
//
// if (light.equals("초록불")) {
// System.out.println("건너세요!");
// } else if (light.equals("노란불")) {
// System.out.println("주의하세요!");
// } else {
// System.out.println("멈추세요!");
// }
// System.out.println("...");
// switch 문
int number = 1;
switch (number) {
case 1:
System.out.println("1입니다.");
break;
case 2:
System.out.println("2입니다.");
break;
default:
System.out.println("1도 아니고 2도 아닙니다.");
}
}
}
package chapter1.condition;
import java.util.Scanner;
public class TrafficLight {
public static void main(String[] args) {
// 조건문 과제
Scanner sc = new Scanner(System.in);
System.out.print("신호등 색상을 입력하세요 (초록불, 노란불, 빨간불): ");
String light = sc.nextLine();
if(light.equals("초록불")) {
System.out.println("건너세요!");
} else if (light.equals("노란불")) {
System.out.println("주의하세요!");
} else if (light.equals("빨간불")) {
System.out.println("멈추세요!");
} else {
System.out.println("잘못된 입력입니다!");
}
}
}
🚩반복문
package chapter1.loop;
public class Main {
public static void main(String[] args) {
// 로봇한테 10번 인사 반복 시키기
// System.out.println("안녕하세요!");
// System.out.println("안녕하세요!");
// System.out.println("안녕하세요!");
// System.out.println("안녕하세요!");
// 10번 반복!
// 반복문(for) - 조건과 증감식을 포함한 반복문
// for (int i = 1; i <= 100000; i++) {
// // 1번째 반복: i = 1
// // 2번째 반복: i = 2
// // 3번째 반복: i = 3
// // ....
// // 11번째 반복: i = 11
// System.out.println("안녕하세요!");
// }
// int customers = 5;
// for (int i = 1; i <= customers; i++) {
// if (i == 4) {
// break; // 반복문을 즉시 종료
// }
// if (i == 2) {
// continue;
// }
// System.out.println(i + "번째 손님, 안녕하세요!");
// }
// 반복문(while) 조건이 참인 동안 반복
// int i = 1;
// while (i <= 10) {
// System.out.println("안녕하세요!");
// i++;
// }
// 반복문(do-while) 최소 한 번 실행 후 조건 검사
int i = 1; // 시작조건
do {
System.out.println("안녕하세요!");
i++; // 조건변화수식
} while (i <= 10); // 종결조건
}
}
package chapter1.loop;
import java.util.Scanner;
public class Gugudan {
// 조건문 구구단 입력 받은 숫자의 구구단 출력 과제
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("출력할 구구단 단수를 입력하세요 (2~9): ");
int gd = sc.nextInt();
// 2~9 사이의 숫자인지 확인
if (gd < 2 || gd > 9) {
System.out.println("2에서 9 사이의 숫자를 입력하세요!");
} else {
System.out.println("==== " + gd + "단 ====");
for (int i = 1; i <= 9; i++) {
System.out.println(gd + " x " + i + " = " + (gd * i));
}
}
}
}
package chapter1.loop;
public class GugudanAll {
// 모든 구구단의 출력 과제
public static void main(String[] args) {
int i = 0;
for (i = 2; i <= 9; i++) {
System.out.println("==== " + i + "단 ====");
for (int j = 1; j <= 9; j++) {
System.out.println(i + " x " + j + " = " + (i * j));
}
System.out.println();
}
}
}
🚩배열
package chapter1.array;
public class Main {
public static void main(String[] args) {
// 모험가 명단을 관리하는 법
String name1 = "gygim";
String name2 = "Steve";
// ...
String[] adventurereList = {"gygim", "Steve", "..."};
// 1. 배열 선언
// int[] arr;
// 2. 배열 길이 할당
// arr = new int[5];
// 3. 배열 선언과 길이 동시에 할당
// int[] arr = new int[5];
// arr = [] [] [] [] []
// 4. 배열 선언과 동시에 배열의 요소 할당
// int[] arr = {10, 20, 30, 40, 50};
// [10] [20] [30] [40] [50]
// 배열의 길이
// int arrLength = arr.length;
// System.out.println("arrLength = " + arrLength);
// 문자열 배열 선언
String[] strArr = new String[5]; // [""] [""] [""] [""] [""]
// 논리형 배열 선언
boolean[] booleanArr = new boolean[3]; // [true] [false] [true]
// 배열의 요소에 접근: 인덱스 활용 방법
int[] arr = {10, 20, 30, 40, 50};
// [0] [1] [2] [3] [4]
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]);
// 0 1 2 3 4
// [100] [200] [300] [400] [500]
// System.out.println(arr[5]); // 인덱스 사용시 주의해야 된다
// for문으로 배열 탐색 (현업에서는 오류 때문에 잘 사용하지 않음)
for (int i = 0; i < arr.length; i++) {
// i = 0;
// i = 1;
// ... i = 5;
System.out.println("인텍스: " + i + ", 값: " + arr[i]);
}
// 향상된 for문 (**중요** 현업에서 많이 사용)
// arr [100] [200] [300] [400] [500]
for (int a : arr) {
System.out.println("값: " + a);
}
// 2차원 배열
// boolean[][] board = new boolean[2][2];
// [] []
// [] []
boolean[][] board = {
{true, false},
{false, true}
};
System.out.println(board[0][0]);
System.out.println(board[0][1]);
}
}
package chapter1.array;
public class PrefixSum {
// 배열 과제 1: 배열의 누적합 구하기
public static void main(String[] args) {
int[] numbers = {2, 5, 8};
int sum = 0;
for (int i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
System.out.println("누적합: " + sum);
}
}
package chapter1.array;
public class EvenNumberFinder {
// 배열 과제 2: 배열 요소의 짝수만 뽑기
public static void main(String[] args) {
int numbers[] = {3, 4, 7, 10, 15, 20};
System.out.print("짝수: ");
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] % 2 == 0) {
System.out.print(numbers[i] + " ");
}
}
}
}
package chapter1.array;
public class BlackStoneFinder {
// 배열 과제 3: 검은돌의 좌표 구하기
public static void main(String[] args) {
boolean[][] board = {
{true, false},
{false, true}
};
for (int i = 0; i < board.length; i++) {
for (int j = 0; j < board[i].length; j++) {
if (board[i][j]) {
System.out.println("검은돌(●) 위치: (" + i + "," + j + ")");
}
}
}
}
}
🚩메서드
package chapter1.method;
public class Main {
public static void main(String[] args) {
// 1. 객체를 객체화(소환)
Calculator calculator = new Calculator();
// [계산기] 계산기 = 계산기
// [정수형] 상자 = 성수
// 2. 메서드(함수)를 호출
int result = calculator.sum(1, 2);
calculator.sum1(1, 2); // void
}
}
package chapter1.method;
public class Calculator {
// 메서드 선언 - 두 수를 더합니다.
int sum(int value1, int value2) {
int result = value1 + value2;
return result;
}
// void 사용
void sum1(int value1, int value2) {
int result = value1 + value2;
System.out.println("결과는: " + result);
}
}
뭔가 첫 번째에는 확실히 이해하지 못하고 그냥 따라친 느낌이었다면 오늘은 그래도 금방금방 이해할 수 있고 과제로 나온 실습도 풀 수 있었다. 역시 뭐든 반복이 정말 중요하구나...... 꼭 하나를 정확히 이해를 하고 넘어가야겠다 이런 생각은 버리는 게 맞는 것 같다. 전체를 훑더라도 반복을 여러 번 하는 게 정말 중요한 듯. 그러면 자동으로 이해가 된다. 하나에 집착하지 말아야지.
내일은 git 활용 방법을 배우네 예전에 git 해 봤을 때는 그냥 막연하게 github를 만들고 올리는 것만 제대로 해 봤는데 내일 열심히 들어야지 그리고 자바 챕터 2를 들어야겠다
'IL > TIL' 카테고리의 다른 글
| 20260108 [TIL] 8 - Java 객체지향 이해하기 (클래스와 객체, JVM 메모리 영역, 레퍼클래스, static, final, 인터페이스, 캡슐화, 상속, 추상화, 다형성) (0) | 2026.01.08 |
|---|---|
| 20260107 [TIL] - 협업을 위한 git 활용 팀 과제 (0) | 2026.01.06 |
| 20260102 [TIL] 4 - 웹개발 기초 과제(맛집 관리 API 설계하기) (0) | 2026.01.02 |
| 20251231 [TIL] 3 - 웹개발 기초(백엔드 코드, 데이터베이스 맛보기, AI 활용법) (0) | 2025.12.30 |
| 20251230 [TIL] 2 - 웹개발 기초(REST API, Postman, 프로젝트 맛보기) (0) | 2025.12.30 |