노트정리

2022_09_21 정리

0304호 2022. 9. 21. 17:43

변수에서 
main안에서 만들어진 변수는 지역변수라고 부름
변수는 해당 중괄호 안에서만 사용가능

정수형 (디폴트는 Int)
 byte  = 1byte (-128~127)
 short = 2byte (-32768 ~ 32767)
 int   = 4byte (+- 21억)
 long  = 8byte (int허용 범위를 넘어가는 숫자는 long으로 저장)

실수형 (디폴트는 double)
 float  = 4byte (소수점 최대 7자리까지 표현 가능 )
 double = 8byte (소수점 최대 15자리까지 표현 가능 )
 실수형은 연산작업(+)을 할때 오차범위가 존재함 (반올림을 사용해서 해결가능)

논리형
 boolean = true/false = 1bit
 
문자형
 char   = ''를 이용한 1글자만 저장 가능 (ex. 'a' // 'b' // 'c')  
2byte (16칸 모두 사용)
아스키코드 -> 유니코드의 등장으로 2byte로 확장 되고 부호없는 비트값 65536개의 문자를 표기
 string = ""를 이용한 문자열을 저장 가능 (ex. "abc" // "hello")   
공백도 문자로 인식함 // 문자열은 +로 연결하면 붙인 결과를 가져온다.
문자열에 다른 타입을 붙이면 결과는 문자열이다. 

데이터크기
 byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)
                char(2)
  실수를 정수에 넣을땐 무조건 캐스팅을 해야한다. 안할시 컴파일 오류. (캐스팅하면 소수점부분이 사라짐)
  Casting은 크기가 큰 타입을 작은 타입으로 변환할때 사용 (Type)

  값 앞에 (type)을 붙힘으로 원하는 형식으로 캐스팅함.
  
캐스팅을 할때 주의할 점
 해당 값을 받을 수 없는 범위가 들어오면 잘려나간 값이 저장된다.
ex) int 1000는 이진법으로 0011 1110 1000
 byte로 변경할때 1110 1000을 제외한 앞은 버리게 됨으로 -24가 나옴

 서로 다른 타입을 연산할땐 둘 중 큰쪽에 자동으로 맞춰서 연산함
 int보다 작은 데이터타입은 자동으로 int로 형 변환 후 연산함
 연산의 기준은 항상 int기 때문에 int보다 작다면 int로 변환됨.
  
연산자
 단항연산자
++/-- 숫자 하나를 +/-시키는 연산자
+/- 양수나 음수를 나타내는 부호 연산자
! 논리 반전 연산자 !false / !true
(type) 캐스트연산자

 2항연산자 //결과는 항상 int형으로 자동형변환
산술연산자 (+,-,*,/,%) 
비교연산자 (<, <=, >, >=, ==, !=)
비교연산자의 결과는 boolean형 (true/false)로 반환함.
System.out.println(k % 2 == 0); 
홀짝 구분할때 자주쓰는 문장
 

논리 연산자(&, |, &&, ||)
 &   // and // 양쪽 항이 모두 true일 때만 true값을 반환함
 |   // or // 둘중 한쪽이 true일 때 true값을 반환함 
 &&  // and // 왼쪽 항이 false면 오른쪽을 확인하지 않고 false를 반환함 (false 밖에 답이 없는 상황)
 ||  // or // 왼쪽 항이 true면 오른쪽을 확인하지 않고 true를 반환 (true 밖에 답이 없는 상황)
   && ||를 short circuit operator라고 부름
   &&, ||는 앞 항을 검사해서 결과가 정해지면, 뒤를 실행하지 않는다.

 

 대입 연산자
 +=, -=, *=, /=, %=
  a=a+3   ->  a+=3
  a=a-3   ->  a-=3  //이런식으로 줄여쓰기가 가능함
  
 3항 연산자
  (조건식? 연산식1 : 연산식2)
  조건식의 결과값이 참이면 연산1 거짓이면 연산2를 실행
  조건식에는 boolean형 조건식이 들어감
  

Math.random()   =  0이상 1.0 미만의 랜덤 실수를 가져옴
 
 계산순서 
 소괄호 -> 단항 -> 이항 -> 삼항 -> 대입 -> (++ --은 맨 마지막에함) 
 

 입출력 
 입력된 데이터가 지나다니는 통로는 스트림이라 부름
 
 Scanner scan = new Scanner(System.in);
 //빨간줄 클릭해서 import scanner
 
 Scan.next() : 공백없는 문자열 입력
 Scan.nextLine() : 공백포함 문자열 입력
 Scan.nextInt() : 정수를 입력
 Scan.nextDouble() : 실수를 입력