DAY02 - 주석, 변수, 연산자, 형변환

은나현·2023년 1월 19일
0

📌 1. 소스파일 구문 분석

  • 소스는 블록간의 중첩으로 구성된다.
  • 하나의 블록 = {...}
  • 블록 안에 명시되는 명령어는 세미콜론(;)으로 문장의 끝을 표현한다.

📌 2. 주석문

📍 2-1. 주석문이란?

  • 프로그램 소스코드 안에 개발자의 필요에 따라 명시하는 설명문
  • 주석문은 프로그램으로 컴파일되지 않는다.
  • 특정 명령문이 실행되지 않도록 차단하는 용도로 사용할 수 있다.
📍 2-2. 주석문의 종류
  • 한 줄만 처리하는 주석문
    ->//가 앞에 명시된 라인은 주석으로 인식
  • 여러 줄을 처리하는 주석문 ->

    /*
    이 블록 안에서는 여러 라인을 주석으로 처리할 수 있다.
    */


📌 3. 변수의 이해

📍 3-1. 변수란

  • 다양한 종류의 자료를 표현할 수 있는 값을 변수라고 부르며, 일반적으로 웹 페이지에서 처리하고자 하는 데이터에 해당한다.

📍 3-2. 자료형(data type)

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

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

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

📍 3-4. 문자열 데이터

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

📍 3-5. 변수의 사용 방법

  • 변수를 사용하는 방법은 선언할당의 두 영역으로 구분된다.
  • 변수의 선언
 	데이터형과 사용하고자 하는 변수의 이름을 정한 후, 세미콜론(;)으로 한 라인을 종료
 		- 예시 ) int num; 
  • 변수의 할당
 	선언된 변수에 원하는 값을 대입하는 과정
 	값의 대입은 대입연산자(=)를 사용하여 우변에서 좌변으로 대입된다.
		- 예시 ) num = 100; 
  • 선언과 할당의 통합
   			- 예시 ) int num2 = 200;
  • 문자열 데이터
 	String 형의 변수를 선언하고, 쌍따옴표("")로 묶인 값을 대입한다.
     빈 문자열이나 공백도 문자열 데이터이다.
		- 예시 ) String msg = "Hello        world"; -> 문장을 표현(공백 포함)
		- 예시 ) String blank = ""; -> 빈 문자열 값
		- 예시 ) String age = "20"; -> 숫자값이 ""로 묶였다면 문자열
  • 문자열 + 문자열
 	문자열 + 문자열 : 두 문장을 하나로 합쳐 준다
		- 예시 ) String language = "JA" + "VA"; 
  • 문자열 + 기본자료형
 	기본 자료형의 데이터가 문자열로 변환되고 두 문장이 합쳐진다.
		- 예시 ) int age = 20;
				String name = "자바학생";
				String result = name + age; 
  • 변수 이름 명명 규칙
 	 - 변수 이름은 영문,숫자,"_","$"만 사용 가능
     - 변수 이름의 첫 글자는 숫자로 시작될 수 없다.
     - 대/소문자를 엄격하게 구분, 오타에 주의
     - 자바에서 사용하는 예약어(키워드)를 사용할 수 없다.
     - 클래스 이름의 명명 규칙도 변수 이름의 규칙과 동일하다.

📍 3-6. 변수의 할당

  • long, float, double은 다른 데이터형과의 구별을 위해 값 뒤에 데이터형의 첫 글자를 접미사로 가질 수 있다. 접미사는 대/소문자를 가리지 않지만 가급적 대문자로 사용하는 것이 좋다.
	- 예시 ) long money = 50000000000000L;
			float PI = 2.14F;
			double lat = 128.32452D;
  • booleantrue(참), false(거짓) 중의 한 가지만 갖는다.
	- 예시 ) boolean user = true;
			boolean isJapanese = false;
  • char는 홑따옴표('')로 감싸진 한 글자만 대입할 수 있다.
	- 예시 ) char first = '곽';

📍 3-7. 값의 할당 방법

  • 생성된 변수는 다른 변수에 대입될 수 있다.
  • 반복하여 다른 값이 할당될 수 있지만 선언은 중복 불가하다.
	- 예시 ) int num1 = 100;
			int num2 = num1;
			int num1 = 300; //에러
  • 선언되지 않은 변수는 사용할 수 없다.
	- 예시 ) num2 = 300; //에러
  • 값이 대입되지 않은 변수는 다른 변수에 대입하거나 출력할 수 없다.
	- 예시 ) int num1;
			int num2 = num1;			//에러
			System.out.println(num1);	//에러

📍 3-8. 상수 - 변하지 않는 수

  • 변수와 마찬가지로 메모리상에 존재하지만 값이 변경될 수 없는 데이터
  • final 키워드를 사용하여 선언된 변수는 상수로 생성된다.
	- 예시 ) final int age = 20;
			final long money = 1200000000L;
			final float PI = 3.14F;
  • 메모리상에 이름이 생성되므로 접근은 가능하지만, 할당한 값을 변경할 수는 없다. (읽기 전용)
	- 예시 ) final int AGE = 20;
			AGE = 21; 	// 에러
  • 암묵적으로 변수명을 대문자로 생성한다.

📌 4. 연산자

📍 4-1. 연산자란?

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

📍 4-2. 연산자의 종류

종류설명비고
대입 연산자=변수에 숫자나 문자열 등의 자료를 입력하거나 연산결과를 다른 변수에 할당
사칙 연산자+, -, *, /, %덧셈, 뺄셈, 곱셈, 나눗셈(몫/나머지)모든 수는
0으로 나눌 수 없다.
단항 연산자+=, -=, *=,
/=, %=
변수에 대한 연산 결과를 다시 자기 자신에게 적용하는 경우 사용스스로 대입하는 경우의
약식 표현
증감 연산자++i, i++
--i, i--
특정 변수에 저장되어 있는 값을 1씩 증가, 감소 시킬 경우 사용++i, --i -> 증감 후 적용
i++, i-- ->적용 후 증감
비교 연산자==, !=, >,
>=,<,<=
두 개의 변수값 간의 관계를 비교하여 boolean 값으로
참(true)이나 거짓(false)의 결과를 반환
같다 / 다르다 / 초과 /
이상 / 미만 / 이하
논리 연산자&& (AND)
|| (OR)
두 개 이상의 비교 연산자의 결과나 boolean 값에 대해 AND나 OR연산을 수행
&& : 양변 모두 true일 시 true 리턴 / || : 하나 이상 true이면 true 리턴
boolean 값
(true 또는false) 리턴

📌 5. 형변환

📍 5-1. 형변환이란?

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

📍 5-2. 암묵적 형변환

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

📍 5-3. 명시적 형변환

  • 데이터의 손실을 감수하더라도 강제로 형변환 시키는 형태.
    자료형 b = (변환할 자료형)a;
    • 실수형을 정수형으로 변환하는 경우 소수점 이하 자리는 버려진다.
    	 	- 예시 ) double a = 3.14d;
    				int b = (int)a;	// b == 3


이미지 출처

0개의 댓글