[JAVA] 변수,연산자 및 예제

김윤섭·2023년 9월 4일
0

JAVA

목록 보기
8/27
post-thumbnail

📌변수의 이해

변수란?

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

자료형(data type)

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

자료형이 가지는 의미

  • 모든 변수는 컴퓨터의 메모리 영역에 생성된다.

  • 일반적으로 메모리란, PC에 설치하는 RAM을 의미한다.

  • 4byte의 크기를 갖는 변수 값 하나를 생성할 경우, PC의 RAM에서 해당 용량만큼을 사용하게된다.

  • 변수는 RAM의 크기를 넘지 않는 범위 안에서만 생성할 수있다. (용량을 넘어서는 경우 OutOfMemory에러발생)


문자열 데이터

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

변수의 사용방법

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

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

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

    	변수이름 = 값;
    	=>num = 100;
  • 선언과 할당의 통합

    	데이터형 변수이름 = 값;
    	=> int num2 = 200;
  • 문자열 데이터
    - String 형의 변수를 선언하고 쌍따옴표로 묶인 값을 대입한다.
    - 빈 분자열이나 공백도 문자열 데이터 이다.
    => String msg = " 안녕하세요. 자바"; -> 문장을 표현(공백 포함)
    => String blank = " " ; => 공백 OK -> 빈 문자열 값
    => String age = "20"; -> 숫자값이 쌍따옴표로 묶였다면 문자열이다.

  • 문자열 데이터의 덧셈
    - 문자열 + 문자열 : 두 문장을 하나로 합쳐준다.
    => String language = "JA" + "VA"; -> "JAVA"

  • 문자열 + 기본자료형
    -기본자료형의 데이터가 문자열로 변환되고, 두 문장이 합쳐진다.

    		int age =20;
    		String name = "자바학생";
    		String result = name + age;			
    -> "자바학생" + 20 -> "자바학생20"

    📌변수이름의 명명 규칙

    1. 변수이름은 영문, 숫자, "_", "$" 만 사용가능
    2. 변수의 이름의 첫글자는 숫자로 시작될 수 없다.
    3. 대/소문자를 엄격하게 구분, 오타에 주의
    4.자바에서 사용하는 예약어(키워드)를 사용할 수 없다.
    5.클래스 이름의 명명 규칙도 변수 이름의 규칙과 동일하다.


📍 변수의 할당

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

📍 값의 할당 방법

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

📌상수

👉 변하지 않는 수, 무조건 대문자로만 써야하는 암묵적인 룰이있음 : 이름만으로도 상수구나! 캐치가능

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

📌연산자

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

👍대입연산자 ("=")

  • 변수에 숫자나 문자열 등의 자료를 입력하거나 연산결과를 다른변수에 할당한다.

👍사칙연산자

  • 더하기, 빼기, 곱하기, 나눗셈의 몫(/), 나머지(%)
10 나누기 3을 계산할때, 수학에서는 몫이 3, 나머지가 1이라고 계산된다.
10/3 👉 "3"
10%3 👉 "1"
  • 모든수는 0으로 나눌 수가 없다.

👍단항연산자

  • 변수에 대한 연산 결과를 다시 자기 자신에게 적용하는 경우 사용
  • 다시 자기자신에게 대입하고자 한 경우의 약식표현이다.
int x = 100;
x = x + 5;
_______________
int x = 100;
x += 5;
  • 단항 연산자는 모든 사칙연산자의 표현이 가능하다.
+=, -=, *= %=

👍증감연산자

  • 특정 변수에 저장되어있는 값을 1씩 증가,감소 시킬 경우 사용
  • 단항연산자로 표현할 수 있는 식에서 계산 대상 값이 1인 경우 덧셈과 뺄셈에 대해서는 다시 한번 축약할 수 있다.
[덧셈의 경우]
x = x + 1;
x += 1;
x ++;
++x;
[뺄셈의 경우]
x = x -1;
x -= 1;
x --;
--x;

X++; 와 ++X;의 차이

  • 증감 연산자는 그 자체가 다른 연산식의 피 연산자로 사용될 수 있다. 이 때, 증감 연산자의 표시 위치에 따라 결과가 서로 다르게 적용된다.
[X++ 경우]
증감 연산자가 뒤에 표시되는 경우, 현재 x의 값을 먼저 수식에 적용하고, 나중에 x에 대한 1 증가 처리 한다.
	int a = 100;
    int x = 1;
    int y = a + x ++;		//100 + 1 = 101
    System.out.println(y)	//y : 101 , x : 2
    
[++X 경우]
증감연산자가 앞에 표시된 경우 먼저 현재 x의 값을 1 증가시킨 후 그 결과를 수식에 적용한다
	int a =100;
    int x = 1;
    int y = a = ++x;		//100 + 2 = 102
    System.out.println(y)	//y : 102, x : 2

👍논리연산자

  • 좌변과 우변을 논리연산하고, 참일때는 true, 거짓일때는 false값을 변환한다.
  • 두개 이상의 비교 연산자의 결과나 boolean 값에 대해 추가로 "AND" 나 "OR" 연산을 수행하여 결과를 얻는다

AND의 의미를 갖는 &&
&&연산자 두 개의 boolen값을 비교하여 모두 true인 경우에만 결과값이 true
ex) 로그인 : 아이디 비밀번호 둘다 맞아야 로그인

OR의 의미를 갖는 ||
||연산자는 두 개의 boolean값을 비교하여 둘중 하나라도 true인 경우 결과값이 true
ex) 2호선, 8호선 타고 잠실가기 - 뭘타든 타기만하면 잠실 도착함

int a = 10;
int b = 20;

		a<b || a!=b		->true
		a==b && a>=b	->false
		!(a<b || a!=b)	->false
		!true			->false
		!false			->true
      

📌형변환 (Casting)

형변환이란?

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

[암묵적 형변환]

  • 암묵적 형변환은 서로 다른 자료형을 연산 혹은 대입하는 경우, java컴파일러가 자료형을 통일한다.
int a = 100;	//정수형
float b = a;	//정수형을 실수형에 대입
  • 암묵적 형변환은 어떤 변수가 더 큰 범위의 변수로 대입가능함을 의미한다.

[명시적 형변환]

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

🔎변수의 범위

  • 자신보다 하위 블록으로는 침투할 수 있다.
  • 자신이 선언된 블록 밖으로는 빠져나갈 수 없다.

  • 블록안에서 선언된 변수는 블록 밖에서 존재하는 동일한 이름의 변수와는 이름만 동일할 뿐,다른 값으로 인식된다.
profile
안녕하세요

0개의 댓글