Notice
Recent Posts
Recent Comments
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Spring & Java

[3일차] [내일배움캠프 사전캠프] + 스타터 노트 작성하기 본문

내일배움캠프 사전 학습

[3일차] [내일배움캠프 사전캠프] + 스타터 노트 작성하기

dev.hyuck 2025. 11. 12. 17:45

● JAVA 1- 6 연산자 - 계산의 시작.

< 기본 사칙연산 코드 > 

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
        double div2 = a / 3.0;
        System.out.println("div2 = " + div2);
        
        // 모듈러 연산자 ( 나머지 연산 ) - % -- mod
        
        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; * 쉽게 말해서 5 + 3 = 8 - 2 라는 말임 지금 6이 또 내려감
        System.out.println("num = " + num);

        num *= 2; // num = num * 2; * 이건 6 * 2 라는 소리고 12가 값임
        System.out.println("num = " + num);

        num /= 3; // num = num / 3; * 12 / 3 = 4라는 값이 나오게 되는거고
        System.out.println("num = " + num);

        num %= 3; // num = num % 3; * 4 % 3 = 1이란 값이 나오는 굉장히 편리한 기능임 다만, 복합 구도라 심화 복습이 필수임!
        System.out.println("num = " + num);

        // 증감 연산자 ( 실무에서 자주 활용 됨 )
        num = 1;
        num++; // +1 num 값이 +1 증가 된다는 말임
        num++; // +1
        num--; // -1
        num--; // -1
        System.out.println("num = " + num);

        // 증감 연산자는 변수 앞에 붙을수 있고 뒤에 붙을수 있는데
        // 앞에 붙는것이 전위 연산자 (++i) = 연산 후 값이 활용 된다.
        int intbox = 5;
        System.out.println("++intbox = " + (++intbox));

        // 후위 연산
        int intbox2 = 5;
        System.out.println("intbox2++ = " + (intbox2++)); // 5 값을 먼저 활용하고 > 그 다음 num 값을 넣는건데 와 혼란스럽다.. 연습 하자 이거
        System.out.println("intbox2 = " + intbox2);

        // 비교 연산자 = 두값이 같은지 크거나 작은지 비교 할 때 사용된다.
        // 같음 연산자(=) 두 값이 같으면 true, 다르면 false
        System.out.println("10 == 10: " + (10 == 10)); // 10 과 10이 같으니 true로 나온다.

        // 다름 연산자 (!=) 다르면 true, 같으면 false
        System.out.println("10 != 5 = " +(10 != 5));

        // 크기 비교 연산자
        System.out.println("10 < 5: " + (10 < 5 )); // flase
        System.out.println("10 >= 10: " + ( 10 >= 10 )); // 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: = " + ((age > 18) && isStudent));

        // [!] 정리 : 나이 20이랑 18을 비교 했을때 20이 18보다 크다.
        // [답] : age: = true

        // 예시 두 조건이 다르게 반환 할 경우 false가 나오는지 테스트 해보기
        // 테스트 1
        int age1 = 20;
        boolean isStudent2 = false;
        System.out.println("age1: = " + (( age < 19) && isStudent2));
        // [정리] : 20이랑 19를 비교 했을때 19는 더 작다 변수는 20 < 19
        // [답] : age1: = false


        // OR 연산 ( || ) - 두 조건중 하나라도 참이라면 true 를 반환한다.
        System.out.println("fales || true: = " + (false || true));
        // [정리] : false || ture 를 비교 했을때 하나가 참인 경우 true반환 한다.
        // [답] : fales || true: = true

        // NOT 연산자(!) - true -> false , false -> true.
        System.out.println("!ture: = " + (!true));

        // [정리] : 값이 true 일때 false를 반환
        // [답] : !ture: = false

        System.out.println("!false: = " + (!false));
        // [정리] : 값이 false 일때 true를 반환
        // [답] : false: = true

        // 기본 연산자 우선순위
        // 산술 -> 비교 -> 논리 -> 대입

        boolean flag = ((10 + 5) > 12) && true;
        System.out.println(flag);

        // [정리] : 10 + 5 > 12 // 15는 12보다 크다
        // [답] = true

        // 논리 연산사 우선순위
        boolean result = true || (false && false);
        System.out.println("result = " + result);

        // [답] = result = true

        boolean result2 = true || (false && (!false));
        System.out.println("result2 = " + result2);

        System.out.println((10 / 2) + (3 * 2) > 10 || false);
        // 실행 순서 : 10 / 2 + 3 * 2 = 11 > 10  == true

        // 문자열비교 (equals() 활용한다.)
        String text = "hello";
        String text2 = "Hello";
        // 나쁜예: (text == text2)*
        boolean isEqual = text.equals(text2);
        System.out.println("isEqual = " + isEqual);

        // [정리] : 두 값이 문자열로 다를땐 isEqual 사용으로 결과 값을 도출 한다.
        // [답] : isEqual = false
        

    }
}

 

결과 값 

sum = 13
sub = 7
mul = 30
div = 3
div2 = 3.3333333333333335
mod = 1
mod2 = 3
mod3 = 6
mod4 = 3
mod5 = 0
mod6 = 1
num = 8
num = 6
num = 12
num = 4
num = 1
num = 1
++intbox = 6
intbox2++ = 5
intbox2 = 6
10 == 10: true
10 != 5 = true
10 < 5: false
10 >= 10: true
10 <= 5: false
true && true = true
age: = true
age1: = false
fales || true: = true
!ture: = false
!false: = true
true
result = true
result2 = true
true
isEqual = false

● JAVA 1- 6 연산자 학습 메모 및 정리

산술연산자 (1)
( +, - , * , /, %)

대입연산자 (2)
(=)

복합 연산자 (3)
( +=, -=, *=, /=, %=)


증감 연산자 (++, --) (4)
   ㄴ 전위 연산 - 사용 전 연산
   ㄴ 후위 연산 - 사용 후 연산
   
비교 연산자 (5)
( == , != , < , >, <=, >= )

논리 연산자 (6)
( ! , && , || )

연산자 우선순위 (7)

문지열비교 (equals()) (8)

 

(1) 산술 연산자

기본적인 사칙연산 

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);

 

(1 - 2) 나눗셈

● 정수끼리 나누게 되면 소수점이 버려집니다.

● 소수점을 유지 하려면 소수점과 연산을 시켜야 합니다.

 

int a = 10;
int b = 3;

...

int div = a / b;
System.out.println("div = " + div); // ⚠️ 3 (소수점 버려짐)
        
double div2 = a / 3.0;
System.out.println("div2 = " + div2); // ✅ 3.333... (소수점 유지)

 

(1 - 3) 모듈러 연산자 (나머지 연산) 

● 모듈러(%) 연산자는 나머지를 구할 때 유용합니다. 

int mod = 10 % 3;
System.out.println("mod = " + mod); // 나머지: 1

int mod2 = 15 % 4;
System.out.println("mod2 = " + mod2); // 나머지: 3

int mod3 = 20 % 7;
System.out.println("mod3 = " + mod3); // 나머지: 6

 

[TIP] 모듈러 연산은 여러 곳에서 잘 활용 됩니다.

[1] 현재 시간이 10시인데 5시간 후면 몇 시 일까요?

(10 + 5) % 12 = 3

[2] 짝수 / 홀수 판별 하기

6 % 2 = 0; // 짝수
7 % 2 = 1; // 홀수

 

(2) 대입연산자 (=)
● 대입연산자 (=)는 변수에 값을 할당하는데 사용 됩니다.

● 연산자 중에 제일 마지막에 수행 됩니다. [!]

int num = 5;
System.out.println("변수 num의 값: " + num); // 5

 

(3) 복합 대입 연산자 

● 복합대입연산자는 누적 값을 구할때 자주 활용 될 수 있습니다.

● 처음 보면 어렵지만 풀어서 작성해 보면 금방 이해할 수 있습니다.

● num이 5일때 num+= 3; 의 의미는 num = num + 3; 입니다.

int num = 5;
num += 3;  // num = num + 3;
System.out.println("+= 결과: " + num); // 8

num -= 2;  // num = num - 2;
System.out.println("-= 결과: " + num); // 6

num *= 2;  // num = num * 2;
System.out.println("*= 결과: " + num); // 12

num /= 3;  // num = num / 3;
System.out.println("/= 결과: " + num); // 4

num %= 3;  // num = num % 3;
System.out.println("%= 결과: " + num); // 1

 

(4) 증감 연산자

● 증감 연산자는 변수를 1증가 (++) 또는 1 감소 (--) 시킬 때 사용되며 실무에서도 자주 활용 됩니다.
● 또한 전위 연산 (++i)과 후위 연산 (i++)의 차이가 있기 때문에 개념을 정확히 이해하는 것이 중요합니다.

 

전위 연산 : 연산 후 사용 됩니다.
후위 연산 : 사용 후 연산 됩니다. 

 

int num = 1;

System.out.println("num: " + num);  // 1
num++;  // 값을 1 증가 시킴 num = num + 1;
System.out.println("num++ 실행 후: " + num);  // 2

num--;  // 값을 1감소시킴 num = num - 1;
System.out.println("num-- 실행 후: " + num);  // 1

 

 

(4 - 1) 전위 연산( ++i ) vs 후위 연산 ( i++ )

 

증감 연산자는 변수 앞 ( ++i ) 에 위치하는지 뒤 ( i++ )에 위치하는 지에 따라 실행 순서가 달라집니다.

 

전위 연산 ( ++i )

● 연산 후 값이 사용 된다.

int a = 5;
System.out.println("++a: " + (++a));  // 6 (먼저 증가 후 출력)
System.out.println("현재 a 값: " + a);  // 6

 

후위 연산 ( i++ ) 

●  값이 사용된 후 연산 된다.

int b = 5;
System.out.println("b++: " + (b++));  // 5 (출력 후 증가)
System.out.println("현재 b 값: " + b);  // 6

 

(5) 비교 연산자

: 두 값이 같은지 다른지 크거나 작은지 비교할 때 사용 된다.

 

(5 - 1) 같음 연산자 ( == )

● 두 값이 같으면 true, 다르면 false를 반환 한다.

System.out.println("10 == 10: " + (10 == 10)); // true

 

(5 - 2) 다름 연산자 ( != )

● 두 값이 다르면 true, 같으면 false를 반환한다.

System.out.println("10 != 5: " + (10 != 5)); // true

 

(5 - 3) 크기 비교 연산자

● 양쪽의 값을 비교 했을때 논리에 맞으면 true를 반환

● 논리에 어긋나면 false를 반환합니다.

System.out.println("10 < 5: " + (10 < 5)); // false
System.out.println("10 >= 10: " + (10 >= 10)); // true
System.out.println("10 <= 5: " + (10 <= 5)); // false

 

6.논리 연산자 ( AND, OR , NOT 연산자 )

 

(6 - 1) AND 연산자 ( && )는 두 조건이 모두 참일 때 true를 반환 합니다.

System.out.println("true && true: " + (true && true));  // true
System.out.println("true && false: " + (true && false)); // false
System.out.println("false && false: " + (false && false)); // false

int age = 20;
boolean isStudent = true;
System.out.println(age > 18 && isStudent); // true

 

(6 - 2) OR 연산자 ( || ) 둘 중 하나라도 참이면 true를 반환합니다.

System.out.println("true || false: " + (true || false)); // true
System.out.println("false || false: " + (false || false)); // false
System.out.println("true || true: " + (true || true)); // true


int age = 20;
boolean isStudent = true;
System.out.println(age > 18 || isStudent); // true

 

(6 - 3) NOT 연산자 (!) ture 일때 false로, false 일때 true로 변경 합니다.

 

true -> false
false -> true

System.out.println("!true: " + (!true));  // false
System.out.println("!false: " + (!false)); // true


int age = 20;
boolean isStudent = true;
System.out.println(age > 18 && isStudent); // true

 

 

(7) 연산자 우선순위

[!] 우선순위가 헷갈린다면 프로그래밍에 괄호()를 적극적으로 사용하는 것이 좋다.

2 + 3 * 4; // 헷갈릴 수 있음
2 + (3 * 4) // 명확함

 

(7 - 1) 산술 연산자 우선순위

● 기본적인 수학 사칙연산 우선순위가 적용 된다.

System.out.println(10 - 3 * 2); 
// 실행 순서: 10 - (3 * 2) 
// → 10 - 6 
// → 4

 

(7 - 2) 기본 연산자 우선순위

● 산술 > 비교 > 논리 > 대입

boolean flag = 10 + 5 > 12 && true;
System.out.println(flag);
// 실행 순서: (10 + 5) > 12 && true : 산술
// → 15 > 12 && true : 비교
// → true && true : 논리
// → flag = true 대입

 

(7 - 3) 비교연산자 산술 연산자의 우선순위

System.out.println(10 - 3 > 5 + 1);
// 실행 순서: (10 - 3) > (5 + 1) : 산술
// → 7 > 6 : 비교
// → true

 

(7 - 4) 논리 연산자 우선순위 

● ( ! ) > ( && ) > ( || ) 

●  ( ! )가 제일 먼저 연산 됩니다. 두번째로 ( && ) 연산 됩니다. 세번째로 ( || ) 연산 됩니다.

boolean result = true || false && false;
boolean result = true || false && !false;
// 실행 순서: true || (false && false)
// → true || false
// → true

 

(7 - 5) 우선 순위를 생각 하기

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

 

8. 문자열 비교 

● 실무에서 문자열을 비교할 때 ==를 사용하는 경우는 거의 없음.

● 문자열 비교는 항상 .equals()를 활용 하기. (동등성/동일성 문제)

String text1 = "Hello";
String text2 = "Hello";
boolean isEqual = text1.equals(text2);
System.out.println("text1과 text2가 같은가? " + isEqual);

//출력결과:
text1과 text2가 같은가? true

 

 

< 실습 과제 > 

 

public class Main {
    public static void main(String[] args) {
        int a; // 값 할당 필요
        int b; // 값 할당 필요
        
        
        // 1. 더하기
        // 1. 더하기 결과 출력
        
        // 2. 빼기
        // 2. 빼기 결과 출력
        
        //.... 
    }
}

 

public class Main {
    public static void main(String[] args) {
        int a = 15;
        int b = 4;

        int sum = a + b;
        int difference = a - b;
        int product = a * b;
        int quotient = a / b;
        int remainder = a % b;

        System.out.println("덧셈 결과: " + sum);
        System.out.println("뺄셈 결과: " + difference);
        System.out.println("곱셈 결과: " + product);
        System.out.println("나눗셈 결과: " + quotient);
        System.out.println("나머지 결과: " + remainder);
    }
}

 

< 결과 > 

덧셈 결과 : 19
뺄셈 결과 : 11 
곱셈 결과 : 60
나눗셈 결과 : 3
나머지 결과 : 3

 

 

● JAVA 1- 7 조건문 - 프로그램의 선택지

● 조건문 ( if, if-else, else-if) 활용 해보기 

package chapter1.work;

import java.util.Scanner;

public class sports {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int sports = 0;
        System.out.println(" 매일 몇시에 운동 하실건가요?");
        System.out.println(" 저희는 매일 시간대에 따라 운영 시간이 다릅니다.");
        System.out.println(" 고객님의 운동 시간을 숫자로 기입 해주세요 그럼 언제 운동시간인지 알수 있습니다.");
        System.out.println(" 시간 기입 : ");
        sports = scanner.nextInt();

        if (sports >= 0 && sports <= 6) {
            System.out.println("그 시간대는 새벽이므로 신청 할 수 없습니다.");
        } else if (sports >= 7 && sports <= 11) {
            System.out.println("그 시간대는 오전 운동 시간입니다.");
        } else if (sports >= 12 && sports <= 18) {
            System.out.println("그 시간대는 점심 운동 시간입니다.");
        } else if (sports >= 19 && sports <= 22) {
            System.out.println("그 시간대는 저녁 운동시간 입니다.");
        } else if (sports >= 23 && sports <= 24) {
            System.out.println("그 시간대는 야간 운동시간 입니다.");
        }
        else
        System.out.println("0부터 24 사이 시간대를 숫자로 입력해주세요."); // 24 이상의 초과값 입력시 나오는 문구

            }
        }

 

- swich, break 구문 활용법을 아직 모르겠음.