java day2
변수(Variable) | 연산자 | 타입변환
변수(Variable)
- 하나의 값을 저장할 수 있는 메모리 공간
변수의 선언
- 타입 변수이름;
예) int age;
변수의 초기화
- 변수 이름 = 값;
예) age = 20; // 우측에서 좌측으로 대입
변수의 재대입
- 변수 이름 = 값;
예) age = 25; // age에 20을 지우고 25를 대입
변수이름 작성 방법
- 첫번째 글자는 문자 또는 "$","_" 해야함
- 숫자로 시작할 수 없음
- 대소문자 구별
- 문자수의 길이 제한 없음
- 예약어(문법)는 사용할 수 없음
- 첫 문자는 영어 소문자로 시작, 다른 단어가 붙을 경우 첫문자를 대문자로 함(관례, 카멜표기법)
기본 데이터 타입
- 정수
- byte 1byte -128 ~ 127
- char 2byte -32768 ~ 32767 (문자와 숫자) -> 아스키코드(유니코드)
- short 2byte -32768 ~ 32767
- int☆ 4byte 약 -21억 ~ 21억
- long 8byte int 이상
- 실수
- float 4byte 소수점 6자리 표현가능
- double☆ 8byte float 이상
- 문자
- char 2byte 유니코드
char var1 = 'A'; char var2 = '가'; // char var3 = 'AB'; // 두개 이상의 문자는 char 저장되지 않음 System.out.println(var1); System.out.println(var2); char var3 = 100; System.out.println(var3);
- 논리
- boolean 1byte true(1), false(0) 저장
🎁 아스키 코드
- 숫자로 문자를 표현하기 위한 일종의 약속
- 특수문자, 숫자, 문자에 번호를 부여해서 컴퓨터에서 처리하기 쉽도록 만든 방법
🎁 컴퓨터 용량단위
- 1bit : 0 혹은 1
- 1byte : 8bit
- 1KB : 1024byte
- 1MB : 1024KB
- 1GB : 1024MB
- 1TB : 1024GB
- 1PB : 1024TB
- 1EB : 1024PB
연산자
- 프로그램에서 데이터를 처리하여 결과를 산출
- 연산에 사용되는 표시나 기호
1) 산술연산자
-
+, -, *, /, %(나머지)
예) 10 % 3 = 1
int var1 = 10, var2 = 3; int result = var1 + var2; System.out.println(result); //13 result = var1 - var2; System.out.println(result); //7 result = var1 * var2; System.out.println(result); //30 result = var1 / var2; System.out.println(result); //3 System.out.println(var1/3.0); //3.333333333333 result = var1 % var2; System.out.println(result); //1
2) 비교연산자
-
’>’ , ‘< ‘, ‘>=’ , ‘<=’ , ‘==(같음)’ , ‘!=(다름)
예) 10 . 3 = true, 결과는 항상 논리형
int var1 = 10; int var2 = 3; boolean result = var1 > var2; System.out.println(result); // true result = var1<var2; System.out.println(result); // false result = var1 >= var2; System.out.println(result); // true result = var1 <= var2; System.out.println(result); // false result = var1 == var2; System.out.println(result); // false result = var1 != var2; System.out.println(result); // true
3) 증감연산자
- 변수의 값을 1증가 또는 1감소 시키는 연산자
- ++변수 : 다른 연산을 수행하기 전에 값을 1증가시킴
- –변수 : 다른 연산을 수행하기 전에 값을 1감소시킴
- 변수++ : 다른 연산을 먼저 수행한 후에 값을 1증가시킴
- 변수– : 다른 연산을 먼저 수행한 후에 값을 1감소시킴
4) 대입연산자
-
값을 변수에 저장하는 연산자
-
= : 우측의 값을 좌측 변수에 저장
-
+= : 우측의 값을 좌측 변수와 더한뒤 다시 좌측 변수에 저장
-
-= : 우측의 값을 좌측 변수와 뺀뒤 다시 좌측 변수에 저장
-
*= : 우측의 값을 좌측 변수와 곱한뒤 다시 좌측 변수에 저장
-
/= : 우측의 값을 좌측 변수와 나눈뒤 다시 좌측 변수에 저장
-
%= : 우측의 값을 좌측 변수와 나머지 연산을 한 뒤 다시 좌측 변수에 저장
int var1 = 100, var2 = 100, var3 = 100, var4 = 100, var5 = 100; var1 += 10; var2 -= 10; var3 *= 10; var4 /= 10; var5 %= 10; System.out.println("var1 += 10 : " + var1); // 110 System.out.println("var2 -= 10 : " + var2); // 90 System.out.println("var3 *= 10 : " + var3); // 1000 System.out.println("var4 /= 10 : " + var4); // 10 System.out.println("var5 %= 10 : " + var5); // 0
5) 논리연산자
-
논리곱(&&), 논리합( ), 배타적 논리합(^), 논리부정(!) -
피연산자가 논리형(boolean)
-
양수는 0 음수는 1
-
배타적 논리합(^) ; XOR
A ^ B 결과 true true false true false true false true true false false false
-
논리 부정(!)
!A 결과 true false false true
6)비트연산자
-
데이터를 비트 단위로 연산
-
&, , ^, «, » int var1 = 28, var2 = 5, var3 = 2; System.out.println("var1 & var2 : " + (var1 & var2)); // 4 System.out.println("var1 | var2 : " + (var1 | var2)); // 29 System.out.println("var1 << var2 : " + (var1 << var2)); // 896 System.out.println("var1 >> var2 : " + (var1 >> var2)); // 0
7) 삼항 연산자
- 세 개의 피연산자가 필요로 하는 연산자
- 앞의 조건식에 따라 콜론(;) 앞뒤의 피연산자가 선택
- 조건 연산자
- 조건 ? 값 : 값(결과가 논리형)
타입 변환
- 연산은 기본적으로 같은 타입의 피연산자 간에만 수행
- 서로 다른 타입의 피연산자가 있을 경우 두 피연산자 중 크기가 큰 타입으로 자동 변환됨
예) 10 + 5.0 = 15.0 int + double = double(자동 타입 변환)
✔ 강제 타입 변환
int -> byte (byte)변수명
byte var1 = 10;
int var2 = var1; // 자동형변환
System.out.println(var2);
int var3 = 200;
byte var4 = (byte)var3; // 강제형변환
System.out.println(var4); // -128 ~ 127
char var5 = 'A';
int var6 = var5; // 자동형변환
System.out.println(var6); // 65
int var7 = 10;
double var8 = 3.0;
int var9 = 3;
System.out.println(var7/var9); //실수
System.out.println(var7/var8); //정수