1. 변수

1-1. 변수란

-프로그램에서 다양한 종류의 자료를 표현할 수 있는 값을 텍스트변수라고 부르며, 
일반적으로 외부 페이지에서 처리하고자 하는 "데이터"에 해당한다.

1-2. 자료형(dataType)

- 프로그래밍 언어에서 변수의 종류를 구별하기 위해 사용되는 키워드
- 자바에서 제공되는 자료형의 종류에는 총 8가지가 있으며, 이를
기본 자료형(Primitive Data Type)이라 한다.

1-3. 자료형이 가지는 의미

- 모든 변수는 컴퓨터의 메모리 영역에 생성된다.
- 일반적으로 메모리란, pc에 설치하는 RAM을 의미한다.
- 4byte의 크기를 갖는 변수값 하나를 생성할 경우, pc의 RAM에서
해당 용량 만큼을 사용하게 된다.
- 변수는 RAM의 크기를 넘지 않는 범위 안에서만 생성할 수 있다.
(용량을 넘어서는 경우  Out of Memory error 발생)

1-4. 문자열 데이터

- 프로그램 코드에서 "문장"을 표현하기 위해 사용되는 데이터 값
(String)
- 문자열을 표현하기 위한 자료형이다.(첫 글자 대문자 주의)
- 글자 수에 상관 없이 쌍따옴표("")로 묶인 내용을 할당할 수 있다.
- 숫자 경우 쌍따옴표로 묶이게 되면 문자열로 취급되므로, 숫자와
문자열을 분명하게 구별해야 한다.

1-5. 변수의 사용 방법

- 변수를 사용하는 방법은 "선언"과 "할당"의 두 영역으로 구분된다.

- 변수의 "선언"
	-> 선언은 데이터 형과 사용하고자 하는 변수의 이름을 지정한 후,
	세미콜론(;)으로 한 라인을 종료한다.

	ex) 데이터형 = 변수이름;
		 int kor;
-변수의 "할당"
	-> 선언된 변수에 원하는 값을 대입하는 과정을 의미한다.
	값의 대입은 대입연산자(=)를 사용하며, 우변에서 좌변으로 대입된다.

	ex) 변수 이름 = 값;
		 kor = 111;

-사용 예
	int num1; // 변수의 선언
	num1 = 100; // 변수의 할당

- 변수의 할당의 통합(선언과 할당은 다음과 같이 한 줄로 표현될 수 있다.)
	데이터형 변수 이름 = 값;

	int num1 = 100;

1-6. 문자열 데이터

- String형의 변수를 선언하고, 쌍 따옴표로 묶인 값을 대입한다.
- 빈 문자열이나 공백도 문자열 데이터이다.

String msg = "안녕하세요. 자바"; -> 문장을 표현(공백 포함)
	안녕하세요. 자바 로 출력된다. 
String blank = "";
	공백만 출력된다.
String age = "20";
	20은 숫자가 아닌 문자로 출력
int age2 = 20; 
	age와 age2는 같은 20을 출력하나, 전혀 다른 타입


-문자열 데이터의 덧샘
	-> 문자열 + 문자열 => 두 문장을 하나로 합쳐준다.

	 String language = "JA" + "VA"; // JAVA로 출력
-문자열 + 기본 자료형
	-> 기본 자료형의 데이터가 문자열로 변환되고, 두 문장이 합쳐진다.

int age = 10;
String name = "자바학생";
String result = age + name; // 10자바학생으로 출력 이때 10은 문자열 

1-7. 변수 이름 명명 규칙

- 변수 이름은 영문, 숫자, "_", "$"만 사용 가능하다.
- 변수 이름은 첫 글자는 숫자로 시작될 수 없다.
- 대/소문자를 엄격하게 구별하므로 오타에 주의해야 한다.
- 자바에서 사용하는 예약어(키워드)를 사용할 수 없다.
- 예 : myname, myName, my_name < 서로 다른 변수
- 클래스 이름의 명명 규칙도 변수 이름의 규칙과 동일하다.

1-8. 값의 할당 방법

- boolean 은 true(참). false(거짓) 중의 한 가지만 갖는다.

- char는 홀 따옴표(')로 감싸진 한 글자만 대입할 수 있다.

	char first = '마동석'; //'마'만 출력

- long, float, double은 다른 데이터 형과의 구별을 위해, 값 뒤에
데이터형의 첫 글자를 접미사로 가질 수 있다.
접미사는 대/소문자를 가리지 않지만, 가급적 대문자로 사용하는것이 좋다.

long money = 50000000000L;
float PI = 3.14F;
double lat = 128.2452D;

1-9. 값의 할당 방법

- 생성된 변수는 다른 변수에 대입될 수 있다.

	-int num1 = 100;
	int num2 = num1;

1-10. 변수 사용의 제약

- 반복하여 다른 값이 할당될 수는 있지만, 선언은 중복 불가

	int num1 = 100;
	num1 = 200; //이미 선언된 변수의 할당 된 값 변경
	int num1 = 300; //변수가 선언이 되어있기 때문에 오류

- 선언되지 않은 변수는 사용할 수 없다.
	
	int num1 = 100;
	num1 = 200;
	num2 = 300; //변수 선언이 이루어지지 않았으므로 에러

- 값이 대입되지 않은 변수는 다른변수에 대입하거나 출력할 수 없다.

	int num1;
	int num2 = num1; //num1 에 값이 할당되어 있지 않기 때문에 에러
	System.out.println(num1); //위와 동일

1-11. 상수

- 상수  =  변하지 않는 수
- 변수와 마찬가지로 메모리상에 존재하지만, 값이 변경될 수 없는 데이터
- final 키워드를 사용하여 선언된 변수는 상수로 생성된다.

	final int age = 20; // age는 20으로 고정
	final long money = 120000L; // money는 120000으로 고정
	final float PI = 3.14F; //위와 동일

- 메모리상에 이름이 생성되므로 접근은 가능하지만, 할당된 값을 변경 할 수는 없다.
(읽기 전용)

2. 연산자

2-1. 연산자란?

- 프로그램에서 연산을 수행하기 위하여 사용되는 특수기호들

2-2. 사칙연산자

- 일반적으로 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/,%)을 수행
- 사칙 연산의 결과는 대입 연산자를 통하여 다른 변수에 대입될 수 있다.
- 정수(byte, short, int, long)와 실수(float, double)의 연산시 에는 
정수가 실수 형태로 자동 변환되어 처리되기 때문에 결과는 실수가 된다.

2-3. 나눗셈에 있어서의 주의사항

- 10 나누기 3을 계산할 때, 수학에서는 몫3, 나머지1 이라고
계산되지만, java에서는 나눗셈에 대해 두 개의 연산자로 구분된다.
	-> 10/3 : 나눗셈의 몫만을 취하여 결과값은 3
	-> 10%3 : 나눗셈의 나머지만을 취하여 결과값은 1
-모든 수는 0으로 나눌 수 없다.

2-4 단항연산자

- 어떤 변수의 값에 대한 계산 결과를 다시 자기 자신에게 대입하고자 하는 경우의
약식 표현이다.

	int x = 100;
	x = x + 5;
	------------------
	int x = 100;
	x += 5;

둘은 같은 결과를 나타낸다.
-단항 연산자는 모든 사칙 연산에 표현 가능하다.
	-> +=, -=, *=, /=, %=

2-5. 증감연산자

- 단항 연산자로 표현할 수 있는 식에서 계산 대상 값이 1인 경우, 덧셈과 뺄셈에
대해서는 다시 한번 축약할 수 있다.(나눗셈, 곱셈은 안됨)

- 덧셈의 경우
	X = X + 1;
	X += 1;
	X++; 
	++X;

- 뺄셈의 경우
	X = X - 1;
	X -= 1;
	X--;
	--X;

2-6. x++와 ++x의 차이

- 증감 연산자는 그 자체가 다른 연산식의 피연산자로 사용될 수 있다.
이때, 증감연산자의 표시 위치에 따라 결과가 다르게 적용될 수 있다.

- x++
	-> 증감연산자가 뒤에 표시되는 경우, 현재 x의 값을 먼저 수식에 적용하고
	나중에 x에 대한 1증감 처리
		
		int a = 100;
		int x =1;
		int y = a + x++; // y = 101로 저장 (100+1)
							// x가 1에서 2로 변경

- ++x 
	-> 증감연산자가 앞에 표시되는 경우 먼저 현재 x의 값을 1 증가 시킨 후,
	그 결과를 수식에 적용한다.

		int a = 100;
		int x =1;
		int y = a + ++x; // y = 102로 저장 (100+2)

2-7. 비교연산자

- 같다, 다르다, 크다(초과), 크거나 같다(이상), 작다(미만), 작거나 같다(이하)
에 대한 비교를 수행하는 연산자.

	같다		==
	다르다		!=  (!는 부정의 의미로 기억)
	크다		>
	크거나 같다	>=
	작다		<
	작거나 같다	<=

- 주어진 식이 참인지 거짓인지 판별 가능하므로 연산 결과는 boolean 값으로 생성된다.


	int x = 100;
	int y = 1;
	boolean r = x 비교연산자 y;

2-8 논리 연산자

- 두개 이상의 비교 연산자의 결과나 boolean 값에 대해 추가로 "AND"나 "OR"연산을 수행하여
결과를 얻는다.

- AND의 의미를 갖는 &&
	-> && 연산자는 두 개의 boolean값을 비교하여 모두 true인 경우만
	결과값이 true이다.


- OR의 의미를 갖는 ||
	-> '||'연산자는 두 개의 boolean값을 비교하여 둘 중 하나라도 true인
	경우 결과가 true이다.

3. 형변환(Casting)

3-1. 형변환이란?

- 변수의 자료형이 변환되는 것을 의미한다.
- 특정 자료형의 값을 다른 자료형의 변수에 대입할 수 있다.
- 암묵적 형변환(upcasting)과 명시적 형변환(downcasting) 두 종류가 있다.

3-2. 암묵적 형변환

- 서로 다른 자료형을 연산 혹은 대입하는 경우, java컴파일러가 자료형을 통일한다.
- 이 과정에서 발생하는 형변환을 암묵적 형변환이라고 한다.

	long a = 100;	// 정수형
	float b = a; 	// 정수형을 실수형에 대입(자동 변환)
				-> b에는 100.0이라는 값이 할당

	암묵적 형변환은 데이터 손실이 없을 경우 형변환이 이뤄진다.
	2byte -> 4byte ok, 4byte -> 2byte no

3-3. 암묵적 형변환이 허용되는 범위

- 암묵적 형변환은 데이터의 손실이 발생하지 않는 범위 내에서만 이루어 진다.

3-4. 명시적 형변환

- 데이터의 손실을 감수하더라도, 강제로 형변환 시키는 형태

	자료형 b = (변환할 자료형)a;
	
- 실수형을 정수형으로 변환하는 경우, 소수점 이하 자리는 버려진다.

	double a = 3.14d;
	int b = (int)a;	//결과는 3 

4. 조건문

4-1. 조건문

- 무조건 실행되는 것이 아니라, 특정 조건을 충족할 경우에만 실행되는 구문

4-2. 조건문의 종류

- if문
- if ~else문
- if ~ else if ~ else문
- switch문

4-3. if문

- if문은 주어진 조건이 참일 경우에 지정된 구문이 실행된다.

	if(조건식){			//조건이 true면 실행, false면 실행하지 않는다.

			...실행할 구문 ...

		}

4-4. if문의 조건식

- 비교식(비교 연산자 사용)
- 논리식(논리 연산자 사용)
- boolean 값 

4-5. if~else문

-if문의 조건이 참일 경우에 실행되는 구문이라면, if문의 조건과 반대되는 경우에
실행되는 구문이 else문이다.
- else문은 독립적으로 실행될 수 없고, 반드시 if문의 뒤에 위치해야 한다.


	if( 조건 ) {
		... 실행할 구문 ...
		}

	else{
		...실행할 구문...
		}

4-6. if ~ else if ~ else 구문

- if문과 else문 사이에 else if문으로 두번째 조건, 세 번째 조건,.. 나열할 수 있다.
- else if문은 필요한 만큼 나열할 수 있으며, 필요치 않을 경우 else문은 생략 가능하다.


	if ( 1차 조건 ) {
				....
		}

	else if( 2차 조건){
				....
		}

	else{
				....
		}
profile
메모리폼

0개의 댓글