Spring & Java
JAVA 문법 변수,연산자 본문
학습 챕터
● 메서드 - 모듈화의 시작
● 변수 - 데이터의 저장공간
package Study1;
// 변수 - 데이터의 저장 공간
// 데이터 = 변수, 정수 = 정수형 상자, 문자열 = 문자열 상자
// 변수의 구조 [자료형] [변수이름] [세미콜론]
// java에서 문장을 끝내는 마침표
// 변수이름 규칙 : car1, myCar 등 카멜 케이스 사용을 권장 하고 있음.
// 변수를 선언 한다. int a; int b;
// 문법 : 변수에 값 할당
// int a / a = 1 > a라는 변수에 1을 할당 한다.
// 할당 ( Assign )
// 리터럴 ( Literal )
// 선언과 동시에 값 할당
// int c = 3;
// 초기화 처음으로 데이터를 초기값을 설정 하는것을 초기화 라고 한다.
// 기존 변수에 데이터 재할당 (reassign)
// int c = 4 > 5 > 6 이렇게 할당 할 경우 마지막 값을 추가 할 수 있다.
// 변수에 변수를 할당
// int d = 1;
// int e = d;
// d = 10
// 자료형 ( DataType ) : 메모리를 사용하는 단위
// ● 자료형은 상자에 담을 수 있는 데이터의 크기를 결정하는 규칙
// ● int, string, long, boolean
// ● int = 정수형, String = 문자형, long = 정수형 boolean = 논리형
// 정수형 데이터 저장 공간
// int = 4byte
// long =
public class Main {
public static void main(String[] args) {
// 변수에 관련된 학습
int box1 = 11; // [자료형] [변수이름] [세미콜론]
box1 = 15; // 결과 값
int box2 = 12;
// 논리형 > 재할당
boolean booleanbox = true;
booleanbox = false;
// 문자형
String textbox = " 안녕하세요 ";
// 큰 정수형
long longbox = 1;
longbox = 15;
// 소수점 자료형 ( float, double )
// float = 표현하는 데이터 초과시 반올림 한다.
//
double doublebox = 1.0;
doublebox = 3.14;
// 내가 정말 잘배워야 되는 곳 ** 형변환
// 내가 아는 형변환 : 저장 상자를 바꾸는 개념
// 캐스팅 ( Casting )
// 다운캐스팅 ( downCasting ) : 큰 데이터를 > 작은 상자에 넣는것
double doublebox2 = 10.123;
int smalldoublebox = (int) doublebox2; // >> 결국 인트로 바꾸면 smalldoublebox의 값은 10.123이였지만 결국 int 값으로 10으로 치환 한다.
// 업 캐스팅 ( upCasting ) : 작은 데이터를 > 큰 상자에 넣는것
int smalldoublebox2 = 10;
double doublebox3 = doublebox;
// 문자열 데이터
String text1 = "안녕하세요";
char text2 = 'c';
System.out.println("box1 = " + box1);
System.out.println("box3 = " + booleanbox);
System.out.println("textbox = " + textbox);
System.out.println("longbox = " + longbox);
System.out.println("doublebox = " + doublebox);
System.out.println("smalldoublebox = " + smalldoublebox);
System.out.println("smalldoublebox2 = " + smalldoublebox2);
System.out.println("text = " + text1);
}
}
전위/후위 연산자
- int a = 5; System.out.println(++a); → 출력값은? 6 ㅇ
- int a = 5; System.out.println(a++); → 출력값은? 5 ㅇ
- int a = 3; int b = ++a + 2; → b의 값은? 3+ 1+ 2 : 6 ㅇ
- int a = 3; int b = a++ + 2; → b의 값은? 3 + 2 = 5 ㅇ
- int x = 10; System.out.println(x++ + ++x); → 결과는? x++ = 11, ++x = 10 , x = 22
- int a = 1; System.out.println(++a + a++); → 결과는? ++a = 2, a++ = 1, a = 4
- int num = 7; num++; ++num; → num의 값은? num++ = 7, ++num = 8 ㅇ
- int n = 5; int m = n++ + ++n; → m은? n++ = 5, ++n = 6 , m = 12 ㅇ
- int p = 4; System.out.println(p++ + p++); → 출력값은? p = 9
- int k = 10; k = ++k + k++; → k의 값은? k = 11 + 10 = 22 ( 후 증가 +1 ) ㅇ
후위 연산의 함정을 잘 파악 하는게 중요하다.
- int x = 10; System.out.println(x++ + ++x); → 결과는? x++ = 11, ++x = 11 , x = 22
int x = 10 x ++ + ++ x ( x를 후위 연산 후 x를 전위 연산 한다 )
🔹 비교 연산자
- int a = 5, b = 10; System.out.println(a > b); → 결과는? false ㅇ
- int a = 5, b = 10; System.out.println(a < b); → 결과는? true ㅇ
- int a = 10, b = 10; System.out.println(a >= b); → 결과는? true ㅇ
- int a = 5, b = 10; System.out.println(a <= b - 5); → 결과는? true ㅇ
- int a = 7; System.out.println(a > 5 && a < 10); → 결과는? true / / && ㅇ
- int x = 8; System.out.println(x > 10 || x == 8); → 결과는? true ㅇ
- int x = 10, y = 20; System.out.println(!(x < y)); → 결과는? false ㅇ
- int x = 10, y = 10; System.out.println(x <= y); → 결과는? true ㅇ
- int a = 3, b = 7; System.out.println(a * 2 > b); → 결과는? false ㅇ
- int n = 9; System.out.println(n % 2 == 0); → 결과는? false ㅇ
🔹 같음 / 다름 연산자
- int a = 5, b = 5; System.out.println(a == b); → 결과는? true ㅇ
- int a = 5, b = 7; System.out.println(a != b); → 결과는? true ㅇ
- int a = 5; System.out.println(a == 5); → 결과는? true ㅇ
- int a = 5; System.out.println(a != 5); → 결과는? false ㅇ
- int a = 3, b = 3; boolean same = (a == b); → same은? boolean same = true ㅇ
- int x = 10, y = 20; boolean diff = (x != y); → diff는? boolean diff = true ㅇ
- int num = 15; System.out.println(num == 10 + 5); → 결과는? true ㅇ
- int n = 8; System.out.println(!(n == 8)); → 결과는? false ㅇ
- int a = 4, b = 6; System.out.println((a + 2) == b); → 결과는? true ㅇ
- int x = 5; System.out.println(x == ++x); → 결과는? false ㅇ
🔹 크기 비교 및 복합
- int a = 10, b = 20; System.out.println(a * 2 > b); → 결과는? false ㅇ
- int x = 15; System.out.println(x >= 10 && x <= 20); → 결과는? true ㅇ
- int y = 5; System.out.println(y < 3 || y > 7); → 결과는? false ㅇ
- int n = 9; System.out.println(!(n < 10)); → 결과는? false ㅇ
- int n = 12; System.out.println(n % 3 == 0); → 결과는? true ㅇ
- int n = 14; System.out.println(n % 2 == 0 && n > 10); → 결과는? true ㅇ
- int a = 5, b = 10; System.out.println(a + 5 >= b); → 결과는? true ㅇ
- int k = 6; System.out.println(k++ > 6); → 결과는? false ( 헷갈림 ) ㅇ
- int k = 6; System.out.println(++k > 6); → 결과는? true ㅇ
- int x = 10; System.out.println(x-- == 10); → 결과는? false ( 헷갈림 )
10 - 1 비교후 감소 한다는 말을 잘 기억해야 될 듯
🔹 기타 연산자 (논리 + 혼합)
- int a = 5, b = 3; System.out.println(a > b && b > 0); → 결과는? true / true : true ㅇ
- int a = 5, b = 3; System.out.println(a < b || a > 0); → 결과는? false / true : true ㅇ
- int x = 10; System.out.println(!(x == 10)); → 결과는? false ㅇ
- int x = 8, y = 8; System.out.println(++x == y++); → 결과는? false ( 헷갈림 ) ㅇ
- int x = 1; System.out.println(x++ == ++x); → 결과는? (헷갈림 ) false
- int n = 2; System.out.println(n++ + ++n == 6); → 결과는? true ㅇ
- int n = 3; System.out.println(n++ + n++); → 출력값은? 8
- int n = 3; System.out.println(++n + ++n); → 출력값은? 8
- int a = 5; System.out.println((a++ == 5) && (a == 6)); → 결과는? true ㅇ
- int a = 5; System.out.println((a++ == 5) || (a == 7)); → 결과는? true ㅇ
5 - 1 증감 연산 과정에서 후위 연산을 할 경우 비교후 증가는 왜 안하는거지 ? 이해가 안감
연습한 내용 확인 결과 : 증감 연산자의 전위 연산 , 후위 연산의 개념을 더 파악하지 않으면 이해하기 힘들 것 같다.
int a = 5 a++ + ++ a 라고 과정 했을 경우 a의 값은 얼마 일까?
5 + 0 = 5
5 + 2 = 7
답 : 12 이렇게 돌출 하는게 맞는지 모르겠다.
● 연산자 계산의 시작
package Study3;
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 sum2 = a - b;
System.out.println("sum2 = " + sum2);
int sum3 = a * b;
System.out.println("sum3 = " + sum3);
double sum4 = a / 3.0;
System.out.println("sum4 = " + sum4);
// 모듈러 연산자 %
double sum5 = a % b;
System.out.println("sum5 = " + sum5);
double sum6 = 15 % 4;
System.out.println("sum6 = " + sum6);
double sum7 = 20 % 3;
System.out.println("sum7 = " + sum7);
// 시간 연산
int timers = (10 + 5) % 12;
System.out.println("timers = " + timers);
// 짝수 연산
int mod = 6 % 2; // 짝수
System.out.println("mod = " + mod);
int mod2 = 7 % 2; // 홀수
System.out.println("mod2 = " + mod2);
// 복합 대입 연산자
int num = 5;
num += 3;
System.out.println("num = " + 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 = 1;
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 != 5:" + (10 == 5));
// 크기 비교 연산자
System.out.println("10 < 5:" + (10 < 5));
System.out.println("10 >= 10:" + (10 >= 10));
System.out.println("10 <= 5:" + (10 <= 5));
System.out.println("10 == 5:" + (10 == 5));
//int a = 7; System.out.println(a > 5 && a < 10); → 결과는? true
int intbox3 = 7;
System.out.println("intbox3 = " + (intbox3 > 5 && intbox3 < 10));
// < 논리 연산자 이거 외워야 됨 무조건 >
// ● AND 연산자 ( && ) 두 조건이 모두 참일때 true 반환합니다.
// ● OR 연산 (||) - 두 조건중 하나라도 참이라면 true를 반환 합니다.
// ● NOT 연산자 (!) - true > false, false > true
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
// ★★★★★★★ 문자열은 .eauals() 를 적극적으로 활용 해야 된다.
// 문자열 비교는 값을 비교하는 것이 아니라 메모리 즈소를 비교하는 방식이기 때문이다.
String textbox = "hello";
String textbox2 = "Hello";
boolean booleanbox2 = textbox.equals(textbox2); // boolean booleanbox2
System.out.println("booleanbox2 = " + booleanbox2);
int box5 = 15;
System.out.println("box5 = " + ((box5 > 10) || true));
}
}
● 조건문 - 프로그램의 선택지
'JAVA 기초 문법 다지기' 카테고리의 다른 글
| Class 와 객체 (1) | 2025.12.05 |
|---|---|
| JAVA 배열 (3) (1) | 2025.12.04 |
| JAVA 반복문 - 자동화의 첫걸음 (2) (0) | 2025.12.04 |
| JAVA 문법 (1)조건문 (0) | 2025.12.04 |
| 자바 예습 기초 학습 (0) | 2025.11.28 |