숨 참고 JAVA 다이브 🌊 (3) - 연산자, 형변환

joyfulwave·2022년 8월 8일
0

숨 참고 JAVA 다이브

목록 보기
3/21

어려울 거 같아서 미뤄뒀던 프로그래밍 공부 이번에 숨 딱 참고 Java 다이브 💦


💡 연산자

연산자는 프로그램에서 연산을 수행하기 위하여 사용되는 특수기호들을 의미해요.

📎 다양한 연산자들

⚫️ 대입연산자 : 변수에 숫자나 문자열 등의 자료를 입력하거나 연산 결과를 다른 변수에 할당할 수 있어요.

int a = 1;
int b = a;

System.out.println("a의 값은 : " + a); 
System.out.println("b의 값은 : " + b);

/*
출력 결과)
a의 값은 : 1
b의 값은 : 1
*/

⚫️ 사칙연산자 : 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%)

int a = 10;
int b = 5;

System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("a / b = " + (a / b));
System.out.println("a % b = " + (a % b));

/*
출력 결과)
a + b = 15
a - b = 5
a * b = 50
a / b = 2
a % b = 0
*/
  • Java에서는 특히나 나누기에서의 몫과 나머지가 구분되기 때문에 주의하셔야해요.
  • 프로그램에서의 연산은 2진수로 변환되어 이루어져요. 실수는 2진수로의 변환이 되지 않기 때문에, 실수의 나눗셈은 오차가 발생해요.
  • 모든 수는 0으로 나눌 수 없어요.
  • 정수(byte, short, int, long)와 실수(float, double)의 연산시에는 정수가 실수 형태로 자동 변환되어 처리되기 때문에, 결과는 실수가 돼요.

⚫️ 단항연산자 : 변수에 대한 연산 결과를 다시 자기 자신에게 적용하는 경우 사용해요. (+=, -=, *=, /=, %=)

a += 5 ; // a = a + 5;
b -= 5 ; // b = b - 5;
c *= 5 ; // c = c * 5;
d /= 5 ; // d = d / 5;
e %= 5 ; // e = e % 5;

⚫️ 증감연산자 : 특정 변수에 저장되어 있는 값을 1씩 증가 또는 감소 시킬 경우 사용해요.

a++; // a = a + 1;
b--; // b = b - 1;
  • x++ : 증감연산자가 뒤에 표시되는 경우, 현재 x의 값을 먼저 수식에 적용하고, 나중에 x에 대한 1증가를 처리해요.

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

⚫️ 비교연산자 : 두 개의 변수값 간의 관계를 비교하여 참(true), 거짓(false)의 결과를 반환해요.

  • 같다(==), 다르다(!=), 초과(>), 이상(>=), 미만(<), 이하(<=)
  • 주어진 식이 참인지 거짓인지만 판별 가능하여 연산 결과는 boolean 값으로 생성돼요.
  • 문자열을 비교할 때 : .equals()
	int x = 100;
	int y = 1;
	boolean r = x 비교연산자 y;
    
    String s = "안녕하세요.";
    System.out.println(c.euals("안녕하세요."));
    
    /*
    출력결과)
    true
    */

⚫️ 기타연산자

  • 객체의 타입을 확인할 때 : instanceof
	class A{}
    class B extends A{}
    
    public static void main(String[] args){
    	A a = new A();
        B b = new B();
        
        System.out.println(a instanceof b);
        System.out.println(b instanceof a);
    }
    
    /*
    출력결과)
    false
    true
    */

'상속'이 포함된 예제라 지금은 이해하기가 어렵지만 b는 a에 상속 받음으로 같은 객체임을 확인할 수 있고, a는 b에 상속받는 객체가 아님으로 false를 출력한다.

⚫️ 논리연산자 : 좌변과 우변을 논리연산하고, 참일때는 true, 거짓일때는 false값을 반환해요.

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

  • AND의 의미를 갖는 &&

    • "&&" 연산자는 두 개의 boolean 값을 비교하여 모두 true인 경우만 결과값이 true가 돼요.
  • OR의 의미를 갖는 ||

    • "||" 연산자는 두 개의 boolean 값을 비교하여 둘 중 하나라도 true인 경우, 결과가 true가 돼요.
  • NOT의 의미를 갖는 !

    • "!" 연산자는 두 개의 boolean 값을 비교하여 둘 중 하나라도 true인 경우, 결과가 false가 돼요. !은 반대 결과를 출력해요.






💡 형변환

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

📎 암묵적 형변환 (Up Casting)

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

⚫️ Up casting : 어떤 변수가 더 큰 범위의 변수로 대입 가능함을 의미해요.
⚫️ 흐름 : byte -> short -> int -> long -> float -> double

int a = 100; // 정수형
float b = a; // 정수형을 실수형에 대입

⚫️ 암묵적 형변환이 허용되는 범위 : 암묵적 형변환은 데이터의 손실이 발생하지 않는 범위 내에서만 이루어져요.

📎 명시적 형변환 (Down Casting)

  • 데이터의 손실을 감수하더라도, 강제로 형변환 시키는 형태
자료형 b = (변환할 자료형)a;
  • 실수형을 정수형으로 변환하는 경우, 소수점 이하 자리는 버려져요.
double d = 3.141592;
int i = (int)d;
System.out.println("i");

/*
출력결과)
3
*/




다음 다이브에서 또 만나요 🌊




출처
https://media.giphy.com/media/l2Je1bFuOpkNpyqYM/giphy.gif
https://media.giphy.com/media/Jbb3KS22397YQ/giphy.gif

0개의 댓글