03. JAVA 기본문법 (식별자, 콘솔창 출력, 연산자)
○ 자바 기본 문법
- 자바 명령어는 대소문자를 엄격하게 구분한다
- 명령어 종결문자 ; (세미콜론)
○ 식별자
- 어떤 대상을 유일하게 식별 및 구별할 수 있는 이름
- 프로젝트명, 패키지명, 클래스명, 변수명, 함수명 등
예) 프로젝트명 basic01_java
패키지명 oop0330
클래스명 Test01_welcome
- 식별자 작성 규칙
① 금칙어 : 한글, 공백, 첫글자 숫자
② 이름에 의미를 부여할 것
③ 자바 클래스명의 첫 글자는 대부분 대문자로 한다 (매우 권장)
○ 콘솔 창에 출력하기
① System.out.print(출력할 내용); : 콘솔창에출력
② System.out.println(출력할 내용); : 콘솔창에 출력하고 줄바꿈
- syso 입력후 ctrl + space → 이클립스 명령어 자동완성
System.out.print(123);
System.out.print(456);
System.out.print(789);
System.out.println(); // 콘솔창에서 줄바꿈 - ln: enter (<br> 태그 효과)
System.out.println(123);
System.out.println(456);
System.out.println(789);
③ 그 외 출력 관련 사항
- 문자열 데이터 구분 기호 "
- " ' \ 등을 단순 기호로 인식하고자 할 때는 역슬래쉬(\)를 앞에 붙여준다
- + 연산자 : 숫자형끼리는 더해주고, 숫자형과 문자열은 결합해줌
// 문자열 데이터 구분 기호 "
System.out.println("JAVA");
System.out.println("Python");
System.out.println(123); // 숫자형
System.out.println("123"); // 문자열형
// " ' \ 등을 단순 기호로 인식하고자 할 때 - 역슬래쉬를 앞에 붙여준다
System.out.println("\"");
System.out.println("\'");
System.out.println("\\");
// + 연산자
System.out.println(123+456); // 579
System.out.println("123"+"456"); // "123456"
System.out.println(123+"456"); // "123456"
System.out.println("123"+456); // "123456"
System.out.println("123+456"); // "123+456"
○ 연산자 (Operator)
① 산술연산자 (+, -, *, /, %)
System.out.println(5+3);
System.out.println(5-3);
System.out.println(5*3);
System.out.println(5/3); // 1 (정수와 정수 계산은 결과 정수로만 나옴)
System.out.println(5%3); // 2
System.out.println(3/5); // 0
System.out.println(3%5); // 3
System.out.println(3/5.0); // 0.6
System.out.println(3.0/5); // 0.6
System.out.println(3.0/5.0); // 0.6 (정수와 실수를 섞어서 계산하면 결과가 실수로 나옴)
② 비교(관계) 연산자(<, >, <=, >=, ==, !=)
- 결과값이 논리형(boolean)으로 반환된다
System.out.println(5<3);
System.out.println(5>3);
System.out.println(5<=3);
System.out.println(5>=3);
System.out.println(5==3); // 서로 같다
System.out.println(5!=3); // 서로 같지 않다
③ 논리연산자 (&&, ||, !)
- 결과값이 논리형(boolean)으로 반환된다
- && 연산자 (그리고, and) : 모든 조건이 true일 때만 true
- || 연산자 (또는, or) : 조건들 중에서 하나만이라도 true이면 true
- ! 연산자 (부정, not) : 부정연산자
System.out.println(2<4 && 5<3);
System.out.println(5<3 || 2<4);
boolean flag=true;
System.out.println(!flag);
④ 삼항연산자
- (조건) ? 참 : 거짓
//삼항연산자로 절대값 구하기
int num=-5;
int result = (num<0) ? num*-1 : num;
System.out.println(num + "절대값 : " + result);
⑤ 대입연산자
int a=3;
a=a+2;
System.out.println(a); // 5
a+=2;
System.out.println(a); // 7 (a=a+2)
a-=3;
System.out.println(a); // 4 (a=a-3)
a*=5;
System.out.println(a); // 20 (a=a*5)
a/=2;
System.out.println(a); // 10 (a=a/2)
a%=4;
System.out.println(a); // 2 (a=a%4)
⑥ 1증감연산자
- 1증가 : 숫자++ / ++숫자
- 1감소 : 숫자-- / --숫자
- 1증감 연산자가 숫자 뒤에 있을 때 : 대입을 먼저 해주고 계산을 함
- 1증감 연산자가 숫자 앞에 있을 때 : 계산을 먼저 해주고 대입을 함
//1증가 연산자
int b=3;
b++;
++b;
//1감소 연산자
int c=3;
c--;
--c;
//증감연산자의 위치
int i=10, j=20;
int x=i++; //x에 대입을 먼저 해주고(x=10), i를 1증가시킴(i=9)
int y=--j; //j를 먼저 1감소 시키고(j=19), y에 j를 대입시킴(y=19)
System.out.println(i); // 11
System.out.println(j); // 19
System.out.println(x); // 10
System.out.println(y); // 19
⑦ bit연산자
- 비트곱(&) 연산자 : 모두 1일 때 1
- 비트합(|) 연산자 : 하나라도 1이면 1
System.out.println(5&3); // 1
System.out.println(5|3); // 7
비트합/비트곱 계산하기
128 64 32 16 8 4 2 1 (8421코드)
10진수 5를 2진수 변환 → 1 0 1
10진수 9를 2진수 변환 → 1 0 0 1
2진수로 변환후 8자리 중 빈 부분은 0으로 채움
5 → 00000101 00000101
3 → & 00000011 | 00000011
---------- ----------
00000001(1) 00000111(7)
&(교차곱): 같은 자리 수를 비교해서 둘다 1인 자리만 1로, 나머지는 0
|(교차곱): 같은 자리 수를 비교해서 둘중 하나라도 1인 자리는 1로, 나머지는 0
- shift 연산자 : << (left shift) / >>(right shife)
System.out.println(16<<3); // 128 left shift
System.out.println(16>>3); // 2 right shift
128 64 32 16 8 4 2 1
10진수 16을 2진수 변환 → 1 0 0 0 0
2진수로 변환후 8자리 중 빈 부분은 0으로 채움
16=10000 → 00010000 00010000
<<3 10000 >>3 00010 (3 :이동 비트 수)
10000000(128) 00000010(2) (없는 부분은 0으로 채움)