본문 바로가기

국비

반응형

✅ 1. 배열의 참조 비교 (CompareExample)

  • ==은 참조(주소) 비교를 수행함
int[] arr1 = new int[] {1, 2, 3};
int[] arr2 = new int[] {1, 2, 3};
int[] arr3 = arr2;
  • arr1 == arr2 → false (내용은 같지만, 다른 객체)
  • arr2 == arr3 → true (같은 객체를 참조)

✅ 2. 가비지 컬렉션 대상 객체 (GarbageObjectExample)

  • 더 이상 참조되지 않는 객체는 가비지 컬렉션의 대상이 됨
String hobby = "여행";
hobby = null; // "여행" 객체는 참조되지 않음
  • 하나의 객체를 여러 변수가 참조하는 경우, 하나만 null 처리해도 나머지는 여전히 유효

✅ 3. 문자열 비교 (EqualsExample)

  • == → 참조 비교 (주소가 같은지 확인)
  • .equals() → 문자열 내용 비교
String str1 = "홍길동";
String str3 = new String("홍길동");

str1 == str3       → false
str1.equals(str3)  → true
  • "홍길동" 같은 리터럴은 **문자열 풀(String Pool)**에 저장되어 공유됨

✅ 4. 빈 문자열 확인 (EmptyStringExample)

  • ""는 길이 0인 빈 문자열 객체
if (x.equals("")) { ... }

✅ 5. 문자 추출 및 판별 (CharAtExample)

  • 문자열에서 특정 위치의 문자를 가져올 때: char ch = str.charAt(index)
  • 예시: 주민등록번호에서 성별 구분 숫자 추출
if (ch == '1' || ch == '3') → 남자
if (ch == '2' || ch == '4') → 여자

📌 6일차 핵심 요약

주제 설명
참조 비교 ==는 주소 비교, .equals()는 내용 비교
가비지 컬렉션 참조되지 않는 객체는 자동 제거 대상
문자열 비교 리터럴 vs new 객체 생성의 차이
빈 문자열 ""는 길이 0의 문자열
문자 추출 charAt()으로 위치 기반 문자 판별

 

댓글
반응형

🕘 오전 수업 요약

✅ 1. for문 기본 사용

  • 1부터 10까지 출력:
for (int i = 1; i <= 10; i++) {
    System.out.print(i + "\t");
}

✅ 2. 1~100까지의 합 계산

  • 누적 합계:
int sum = 0;
for (int i = 1; i <= 100; i++) {
    sum += i;
}

✅ 3. 구구단 출력 (_99dan)

  • 중첩 for문 활용 (1~9단 출력)
  • System.out.printf()로 정렬
  • 3단마다 줄바꿈하여 보기 좋게 구성

✅ 4. while문 실습

  • i++을 이용한 1~10 출력
  • 1~100까지의 합계 계산

🕐 오후 수업 요약

✅ 1. do-while문

  • 조건보다 먼저 실행되는 반복문
  • "q" 입력 전까지 문자열 입력 반복

✅ 2. break 예제

  • 주사위를 던져 6이 나오면 반복 종료

✅ 3. continue 예제

  • 1~10 중 짝수만 출력 (홀수는 continue로 생략)

✅ 4. 실습 문제 (mission_34567)

3번 1~100 중 3의 배수의 합 출력
	static void mission3() {
		int sum = 0;

		for (int i = 1; i <= 100; i++)
			if (i % 3 == 0)
				sum += i;

		System.out.println("1~100 중 3의 배수의 합 : " + sum);
	}
4번 주사위 두 개의 합이 5가 될 때까지 반복 출력
	static void mission4() {
		int x, y;
		while (true) {
			x = (int) (Math.random() * 6) + 1;
			y = (int) (Math.random() * 6) + 1;
			if ((x + y) == 5)
				break;
			System.out.println("(" + x + ", " + y + ")");
		}
	}
5번 4x + 5y = 60을 만족하는 (x, y) 쌍 출력
	static void mission5() {
		for (int x = 0; x <= 10; x++) {
			for (int y = 0; y <= 10; y++) {
				if ((x * 4 + y * 5) == 60)
					System.out.println("(" + x + ", " + y + ")");
			}
		}
	}
6번 다음과 같은 별 출력 피라미드 구현
*
**
***
****
*****
	static void mission6() {
		for (int x = 1; x <= 5; x++) {
			for (int y = 1; y <= x; y++)
				System.out.print("*");
			System.out.println();
		}
	}
7번 간단한 ATM 프로그램
  • 메뉴: 예금 / 출금 / 잔고 확인 / 종료
  • 사용자 입력에 따라 동작 수행
	static void mission7() {
		Scanner sc = new Scanner(System.in);

		int money = 0;
		int select;

		while (true) {
			System.out.println("-------------------------------------");
			System.out.println("1. 예금 | 2. 출금 | 3. 잔고 | 4. 종료");
			System.out.println("-------------------------------------");

			System.out.print("선택> ");
			select = sc.nextInt();

			if (select == 1) {
				System.out.print("예금액> ");
				select = sc.nextInt();
				money += select;
			} else if (select == 2) {
				System.out.print("출금액> ");
				select = sc.nextInt();
				money -= select;
			} else if (select == 3) {
				System.out.println("잔고> " + money);
			} else
				break;

			System.out.println();
		}

		System.out.println("프로그램 종료");
	}

🧠 5일차 핵심 요약표

주제 내용
반복문 for, while, do-while
제어문 break, continue
누적 합 sum += 값 형태 사용
실습 중심 반복 + 조건문을 종합적으로 활용한 문제 풀이
사용자 입력 Scanner를 통한 값 입력 처리
댓글
반응형

🕘 오전 수업 요약

✅ 1. 논리 연산자

  • &&: AND (모두 참일 때만 참)
  • ||: OR (하나라도 참이면 참)
  • !: NOT (부정)
if (charCode >= 65 && charCode <= 90) { ... } // 대문자 조건

✅ 2. 복합 대입 연산자

  • +=, -=, *=, /=, %= : 기존 변수에 연산 후 다시 대입
re += 10; // re = re + 10;

✅ 3. 삼항 연산자

  • 조건에 따라 값 선택:
char grade = score > 90 ? 'A' : (score > 80 ? 'B' : 'C');

✅ 4. if ~ else if ~ else 조건문

  • 점수에 따라 등급 나누기 (A, B, C, ...)

✅ 5. 중첩 if문

  • 점수가 더 세부 조건에 맞을 때, A+, B+ 등 부등급 처리
if (score >= 90) {
  if (score >= 95) rank = "A+";
  else rank = "A";
}

✅ 6. 난수 생성과 조건문

  • Math.random()으로 1~6 사이 정수 생성 후 분기
int num = (int)(Math.random() * 6) + 1;

🕐 오후 수업 요약

✅ 1. 기본 switch 문 (정수형)

  • case별로 동작 지정, break로 흐름 종료
switch(num) {
  case 1: System.out.println("1번이 나왔습니다"); break;
  ...
}

✅ 2. break 없는 switch 흐름

  • break가 없으면 아래 case까지 모두 실행
switch(time) {
  case 8: System.out.println("출근합니다");
  case 9: System.out.println("회의합니다"); // 이어서 실행됨
}

✅ 3. 문자형 switch 문

  • char 값을 기준으로 분기
  • case 'A':, case 'a': 등 복수 case로 처리 가능

✅ 4. Java 14+ switch 표현식 (화살표 방식)

  • case와 ->로 간결한 표현
switch (g) {
  case 'A', 'a' -> System.out.println("우수 회원입니다.");
  ...
}

🧠 4일차 핵심 요약

항목 주요 내용
조건문 if, else if, else, 중첩 if
논리 연산자 &&, ||, !
복합 대입 +=, -=, 등 축약된 연산자 사용
삼항 연산자 조건 ? 참 : 거짓
switch문 정수/문자형 분기, break 유무에 따라 실행 흐름 달라짐
switch 표현식 Java 14+ -> 방식으로 코드 간결화 가능
댓글
반응형

✅ 1. 변수의 범위 (VariableScopeExample)

  • 변수는 선언된 블록 내에서만 사용 가능
  • if문 외부에서 선언한 변수는 if문 내부에서도 사용 가능
  • 조건문 실행 여부에 따라 변수 값이 결정되므로 주의 필요

✅ 2. 사용자 입력 처리 (ScannerExample)

  • Scanner 클래스를 이용한 입력 받기 (nextInt(), nextLine())
  • nextLine() 전에 nextInt() 사용 시, 입력 버퍼 비우기 위해 nextLine() 한 번 호출 필요
  • "q" 입력 시 while 루프 종료 → 문자열 비교는 equals() 메서드 사용

✅ 3. 증감 연산자 (SignOperatorExample)

  • x++, ++x, y--, --y 등의 사용
  • 후위 연산 (x++)은 먼저 값을 사용 후 증가
  • 전위 연산 (++x)은 먼저 증가 후 값 사용
  • 연산 순서에 따라 결과 값 달라짐

✅ 4. 산술 연산자 (ArithmeticOperatorExample)

  • 기본 사칙연산 +, -, *, /, %
  • / 연산은 정수형 연산 시 소수점 제거
  • double 캐스팅 필요: (double) v1 / v2
  • %는 나머지 연산

✅ 5. 비교 연산자 (CompareOperatorExample)

  • ==, !=, <, <= 등
  • 정수 vs 실수 비교 가능 (1 == 1.0 → true)
  • float와 double의 비교는 주의 (0.1f != 0.1)
  • 문자열 비교는 == 대신 equals() 사용!

✅ 6. 논리 연산자와 조건문 (LogicalOperatorExample)

  • && (AND), || (OR), ! (NOT)
  • 유니코드 값 비교로 문자 분류 (대문자/소문자/숫자 판별)
if(65 <= charCode && charCode <= 90) // 대문자
  • 복합 조건식 사용하여 조건 분기 구현
  • 결과값을 boolean 변수에 저장해 조건 재사용 가능

📌 3일차 핵심 요약

변수 스코프 블록 내 유효 범위
사용자 입력 Scanner, nextInt(), nextLine() 주의
증감 연산 ++, -- 전위/후위 구분
산술 연산 +, -, /, % 및 형 변환
비교 연산 ==, !=, <, >= 등
논리 연산 &&, `
문자열 비교 equals() 메서드 사용
댓글
반응형

🕘 오전 수업 내용 요약

1. 변수 값 교환

  • temp를 활용한 값 교환 실습

2. 자료형의 범위 확인

  • byte: -128 ~ 127
  • long: 큰 정수는 L 접미사 필요
  • char: 유니코드 문자, 정수형 캐스팅 가능

3. 논리형과 조건식

  • boolean 타입과 비교 연산자, 논리 연산자(&&) 사용

4. 문자열 처리와 특수문자

  • String 사용 및 이스케이프 문자(\t, \n, \") 출력

🕐 오후 수업 내용 요약

1. 자동 형 변환 (Promotion)

  • 작은 자료형 → 큰 자료형 자동 변환
byte → int → long → float → double
char → int

2. 강제 형 변환 (Casting)

  • 큰 자료형을 작은 자료형으로 변환 시 형 변환 연산자 사용 필요
int x = (int) 3.14;  // 소수점 버려짐
char c = (char) 65;  // 유니코드 문자 'A'

3. 연산 시의 자료형 승급 (Operation Promotion)

  • 정수끼리 연산 시 결과는 int 이상
    • byte + byte → int
  • 다른 타입 간 연산 시 큰 자료형으로 자동 변환
  • 문자 연산 시 숫자로 변환되어 처리됨
char c = 'A';  // 65
int result = c + 1;  // 66
  • 정수 / 정수 = 정수 (소수점 버려짐)
    • 해결: 하나를 double로 캐스팅

4. 문자열 ↔ 기본형 변환

  • 문자열 → 기본형
int num = Integer.parseInt("10");
double d = Double.parseDouble("3.14");
  • 기본형 → 문자열
String s = String.valueOf(10);

📌 2일차 핵심 요약

개념 설명
자동 형변환 작은 자료형 → 큰 자료형으로 자연스럽게 변환
강제 형변환 큰 자료형 → 작은 자료형 변환 시 (자료형) 필요
연산 시 형 승급 byte + byte → int, int + long → long 등
문자와 숫자 char는 유니코드 정수로 취급 가능
문자열 변환 Integer.parseInt(), String.valueOf() 등 사용

 

댓글
반응형

주제 : 자바 개발 환경 설정 및 기본 문법 실습

✅ 오전 수업 – 개발 환경 설정

  • Java JDK 21 설치
    • Oracle JDK 또는 OpenJDK 설치
    • 환경 변수 설정:
      • JAVA_HOME 지정
      • Path에 bin 경로 추가
  • Eclipse IDE 설치
    • Eclipse IDE for Java Developers 버전 설치
    • 워크스페이스 설정 및 실행 확인
    • Java 프로젝트 생성 연습

✅ 오후 수업 – 자바 기본 문법 실습

1. 자바 프로그램의 기본 구조 이해

  • public class 클래스명 { public static void main(String[] args) { ... } }
  • 프로그램 진입점은 main() 메서드

2. 출력문 실습

  • System.out.println("문자열 또는 변수");로 콘솔에 출력

3. 변수 선언과 연산

  • 변수 선언 및 초기화 예제
  • 변수 연산 결과 출력
     
int x = 1, y = 2, result = x + y;
System.out.println(result); // 3

4. 변수 활용 예제

  • 예제: 시간과 분 계산
int hour = 3, min = 5; 
System.out.println(hour + "시간 " + min + "분"); 
int totalMin = hour * 60 + min; 
System.out.println("총 " + totalMin + "분"); // 총 185분

📌 핵심 개념 요약

  • 클래스와 메서드 구조 이해
  • 변수 선언 및 초기화
  • 콘솔 출력문 사용
  • 기본 연산자 사용
  • 문자열 + 변수 결합 출력
댓글