오전엔 자바 데이터 타입에 대대해 공부했다.
digit : fixed data type, 고정되어있는값
int : 4 byte
long : 8 byte
short : 2 byte
1byte : 1 byte
character : flexible data type, 가변성이 있는 값
string
digit type은 선언(Delcartion)과 할당(Allocation)이 동시에 일어난다.
ex)
int a; 라는 선언은 4byte만큼의 숫자를 a값으로 사용하겠다는 뜻이다.
character type은 값이 주어지지 않으면 선언만 일어난다. 왜? flexible이라 용량을 알 수 없기 때문에. 글자수에 따라 크기가 달라진다는 이야기다.
ex)
String b; => 선언
b= "any". =>이 부분에서 3글자. 즉 6바이트의 용량의 할당이 이루어진다
또한 숫자 연산을할때 데이터타입이 다르다면 데이터 타입을 일치 시켜줘야 한다.
ex)
int a=1, int b=2;
int result = (a+b);는 성립 그러나
int a=1, int b=2;
short result = (a+b); <- 이건 에러남. 데이터타입이 달라서
마지막부분을
short result=(short)(a+b);로 정정해주어야 한다
---
또한 이런 데이터 타입을 이해하기 위해선 메모리 개념을 정리해야 함.
Stack=>fixed size data (int, digit..)
Heap=>flexible Size data(string, character.)
int a = 1 로 예를 들자면
데이터타입 변수 = 값(숫자)인데
fixed 된 숫자데이터 1부터 2의 8승까지 변수를 붙여 준다고 생각하면 됨.
1이라는 fixed(고정데이터(숫자 값)에 a라는 스티커, 호칭을 붙여준다고 생각하자.
=은 같다의 개념보다도 오른쪽 값을 왼쪽으로 치환한다. 혹은 계산한다로 생각하자.
-
오후엔 계산기 만드는 실습을 진행했음.
선언
할당
제어
출력
순으로 코딩을 진행하였고
일단 계산에 필요한것들은 두가지 숫자(int)입력값.
그리고 결과 값 숫자(int)
마지막으로 연산부호 ( +, -, * , /) (String)값을 작성했다.
총 4가지의 값들을 선언 해주고
int num1, num2, result;
(데이터타입은 4바이트 짜리, fixed int이다.)
String operates;
(데이터타입은 8바이트, flexible string이다.)
원하는 값들을 할당해준다.
num1=10; operates="+" num2=20
뒤에 if 조건문을 통해 연산부호 (사칙연산) 결정에 따란 결과값을 지정해준 뒤 출력하면 끝.
그 뒤, 조건문 if는
+입력시 result=num1+num2 아니면 (else)
- 입력시 result=num1-num2 아니면 (else)
* 입력시 result=num1*num2 아니면 (else)
/를입력하는게맞지만 그외 문자,부호가 들어가면 나누기로 계산하기 result=num1/num2로 계산하기
로 요약 할 수있고
3개의 조건이 주어진다 가정하였을때
if else의 양식은
if(조건문) {실행문1} {else
if(조건문2) {실행문2} {else {실행문3}
이렇게 정리 할 수 있으며
조건문 : (operates.equals("부호"))
operates가 부호와 일치할때
결과값 : {result = num1 + num2;} else
result는 num1과 num2의 합이다. 아닐 경우(else)
라고 해석해볼 수 있으며 조건에 따라 else뒤에 if문을 다시 기록하면된다.
즉 조건에 따라 복문을 붙여넣게 되고 마지막엔 else문만 기록하면 성립된다.
그리고 마지막에 출력값 result로 지정해주면 끝.!
명령끝에는 세미콜론 필수!
그리고 중괄호 헷갈리지않게 들여쓰기, 줄바꿈 잘하기. 이는 Ctrl + I 통해서 정렬 가능.
'BackEnd > Java' 카테고리의 다른 글
JAVA_배열(Array) (1) | 2021.04.30 |
---|---|
JAVA_Substring, Length (유효성 검사) (1) | 2021.04.26 |
JAVA_Boolean Type (0) | 2021.04.22 |
JAVA_StringBuffer, StringBuilder, DataType변환(parse), 접근자 (0) | 2021.04.21 |
JAVA_실행단위(Class,Method,Void-Return Type) (1) | 2021.04.20 |