Backend/JAVA_Basic

03. JAVA 기본문법 (식별자, 콘솔창 출력, 연산자)

개발개발빈이 2022. 5. 27. 21:56

  ○ 자바 기본 문법

    - 자바 명령어는 대소문자를 엄격하게 구분한다
    - 명령어 종결문자 ; (세미콜론)
    

  ○ 식별자

    - 어떤 대상을 유일하게 식별 및 구별할 수 있는 이름

    - 프로젝트명, 패키지명, 클래스명, 변수명, 함수명 등

      예) 프로젝트명 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);

print : 줄바꿈X println : 줄바꿈O

    ③ 그 외 출력 관련 사항

        - 문자열 데이터 구분 기호 "

        - " ' \ 등을 단순 기호로 인식하고자 할 때는 역슬래쉬(\)를 앞에 붙여준다

        - + 연산자 : 숫자형끼리는 더해주고, 숫자형과 문자열은 결합해줌

// 문자열 데이터 구분 기호 "
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으로 채움)