- 변수와 상수
- 변수를 사용하기 위해서는 변수를 선언해야 합니다.
package com.seona.java;
public class VariableBasic {
public static void main(String[] args) {
//1. 변수 선언
int studentNum;
String name;
double gradejava;
double gradeC;
double avg;
//2. 변수 정의(초기값)
studentNum = 500;
name = "Seon A Min";
gradejava = 4.0;
gradeC = 3.8;
avg = 0;
//3. 연산(재정의)
avg = (gradejava +gradeC)/2;
name = "Min. Seona";
studentNum = 600;
System.out.println(studentNum);
System.out.println(avg);
}
}
- 이번에는 변수의 선언과 정의를 한번에!
package com.seona.java;
public class VariableUsage {
public static void main(String[] args) {
//1. 변수 선언과 정의를 한번에
int studentNum = 500;
String name = "Seon A Min";
double gradejava = 4.0;
double gradeC = 3.8;
double avg = 0;
//2. 연산(재정의)
avg = (gradejava+gradeC)/2;
name = "Min, Seon A";
studentNum = 600;
}
}
- 자바 언어를 포함한 일반적인 프로그래밍 언어에서는 변하지 않는 수를 상수라고 합니다. 변하는 부분이 적을수록 오류는 적어집니다. 고로 변동성을 최소화한다는 관점에서 상수는 필요한 만큼 충분히 넣어주는게 좋아여~~
public class ConstantBasic {
//1. 일반적 상수 정의 (기본 용법)
static final double PI = 3.14159236; //원주율
static final int MAX_COUNT = 100; //최대 개수
static final String COLUM_STUDENT_NAME = "student_name"; //학생 이름 컬럼
public static void main(String[] args) {
//2. 함수 내 상수 정의 (필요한 경우)
final int MAX_INTEGER = Integer.MAX_VALUE;
//3. 함수 내 상수 선언 (비추천)
final char DEFAULT_GRADE;
//상수는 선언과 정의가 분리되어 있으면 가독성이 떨어짐
DEFAULT_GRADE = 'C';
System.out.println("상수 PI : " + PI);
System.out.println("최대 개수 : " + MAX_COUNT);
System.out.println("학생 이름 컬럼 : " + COLUM_STUDENT_NAME);
System.out.println("최대 int 값 : " + MAX_INTEGER);
System.out.println("기본 성적 : " + DEFAULT_GRADE);
}
}
-> 상수는 변하지 않는 값이므로 이름에 대문자와 언더스코어만 사용합니다.
-> 상수에 static final 이라는 지시자가 붙어 있다면 함수 안에서만 정의하는 상수는 final만 가집니다. static과 final 키워드에 대한 자세한 내용은 part5에서 공부하자구여
- 데이터 타입
public class DataTypes {
public static void main(String[] args) {
//1. 정수형 데이터 타입
int num = 100;
long bignumber = 9303489;
short s = 999;
byte b = 0x03;
//2. 실수형 데이터 타입
double grade = 4.3;
float param = 1.32f;
//3. 문자형 데이터 타입
char singleCharacter = 'a';
String str = "HelloWorld!";
//4. 부울형 데이터 타입
boolean isEnabled = true;
}
}
- 연산자
① 산술 연산자 : 사칙연산과 모듈러 연산 등
② 대입 연산자 : 변수에 값을 대입하거나 다른 연산자와 복합 동작
③ 비교 연산자 : 두 변수의 크기를 비교
④ 논리 연산자 : AND, OR 과 같은 논리 연산을 수행
⑤ 비트 연산자 : 주로 16진수의 값을 좌측, 우측 시프트 연산
- 산술 연산자
public class 산술연산자 {
public static void main(String[] args) {
int added = 100+200;
int subtracted = 500-300;
int multiplied = 10*20;
double divided = 100/3;
System.out.println("덧셈 결과: 100+200 =" +added);
System.out.println("뺄셈 결과: 500-300 =" +subtracted);
System.out.println("곱셈 결과: 10*20 =" +multiplied);
System.out.println("나눗셈 결과: 10*20 =" +divided);
int 몫 = 100/3;
int 나머지 = 100%3;
System.out.println("몫: 100/3 =" +몫);
System.out.println("나머지: 100%3 =" +나머지);
++added;
--subtracted;
System.out.println("증가: ++added =" +added);
System.out.println("감소: --subtracted =" +subtracted);
}
}
- 대입 연산자
public class 대입연산자 {
public static void main(String[] args) {
int studentNo = 100;
String studentName = "Seon A Min";
double grade = 4.0;
System.out.println("학번: " + studentNo);
System.out.println("이름: " + studentName);
System.out.println("학점: " + grade);
double v = 100;
v+=3; System.out.println("v+=3 : " + v);
v-=3; System.out.println("v-=3 : " + v);
v*=3; System.out.println("v*=3 : " + v);
v/=3; System.out.println("v/=3 : " + v);
v%=3; System.out.println("v%=3 : " + v);
}
}
+= 연산자는 우변의 값을 더하고 값을 좌변으로 대입해주는 복합 동작을 수행합니다. -= 연산자는 뺄셈과 대입을 함께하고, *= 연산자와 /= 연산자는 각각 우변과의 곱셈과 나눗셈을 수행한 후 결과를 좌변에 대입합니다. 마지막으로 %= 연산자는 나눗셈을 수행하며 나머지를 좌변에 저장합니다.
- 비교 연산자
public class 비교연산자 {
public static void main(String[] args) {
int a = 100;
int b = 100;
int c = 200;
int d = 95;
System.out.println("a와 b는 같다? " +(a==b));
System.out.println("a와 c는 다르다? " +(a!=c));
System.out.println("c는 a보다 크다? " +(c>a));
System.out.println("a는 c보다 크다? " +(a<c));
System.out.println("a는 d 이상이다? " +(a>=d));
System.out.println("a는 c 이하이다? " +(a<=c));
}
}
-> 모두 true 랍니당
- 논리 연산자
public class 논리연산자 {
public static void main(String[] args) {
int a = 4;
boolean inTheMiddle = 3<a && a<5;
boolean isNaturalNumber = a>0 || a==0;
boolean isPositive = !(a<0);
System.out.println("a는 3보다 크고 5보다 작다? " +inTheMiddle);
System.out.println("a는 자연수이다? " +isNaturalNumber);
System.out.println("a는 양수이다? " +isPositive);
}
}
-> 모두 true 입니다.
-> AND(&&), OR(||), NOT연산자(!)
- 비트 연산자
public class 비트연산자 {
public static void main(String[] args) {
//비트 AND(&)
int a = 0x0A; //1010
int mask1 = 0x01; //0001
int mask2 = 0X02; //0010
System.out.println("16진수 a의 첫 번째 자리수는? " +(a&mask1));
System.out.println("16진수 a의 두 번째 자리수는? " +(a&mask2));
//비트 OR(|)
System.out.println("7(111) OR 16(10000) = " +(7|16));
System.out.println("8(1000) OR 15(1111) = " +(8|15));
}
}
16진수 a의 첫 번째 자리수는? 0
16진수 a의 두 번째 자리수는? 2
7(111) OR 16(10000) = 23
8(1000) OR 15(1111) = 15
Ghost