Day 2

dokiru·2023년 2월 1일
0

학원

목록 보기
2/51
  1. 서로 다른 타입을 연산하려고 할때 더 큰 크기의 타입으로 바뀌어서 계산된다 (자동형변환)
int num1 = 123;
double num2 = 123.4;
int num3 = num1 + num2 // 오류 => 실수형의 값을 정수형의 변수에 저장하려고 해서

double로 수정하거나 
둘다 int값으로 형변환을 해주거나
결과값을 int로 변환해주어야 함
  1. 정수형과 정수형의 연산의 기본값은 int이다

  2. 형변환
    문자열 String.valueOf(변환하고자하는값)
    int Integer.parseInt(변환하고자하는값)
    double Double.parseDouble(변환하고자하는값)
    boolean Boolean.parseBoolean(변환하고자하는값)

괄호안에 들어갈 값은 각 타입으로 변환될 수 있는 string이 들어가야한다
ex. boolean -> "true" / int -> "564739"

  1. 대입연산자로 저장을 해주지 않는 이상 변수는 처음 생성된 값으로 계속 활용 가능하다
int num1 = 10;
int num2 = 20 + num1 // 30
int num3 = num2 + num2 + num1 // 30 + 30 + 10  
  1. 이스케이프 문자 : 문자열 내에서 특수한 역할을 수행하는 문자
    ex. 문자열 안에 큰 따옴표를 사용하고 싶을 때 => 앞에 백슬래시와 함께 사용
System.out.println(" \"안녕하세요\" "); 
System.out.println("이스\t케이프\n문자");
char ch = '\'';

\t은 탭, \n은 엔터를 의미한다.

  1. 증감연산자 앞뒤의 차이
    ex.
int x1 = 10;
int y1 = 20;
x1++; // 라인지나고 연산 값 반영 = 10
// x1 = 11;
++x1; // 바로 반영 = 12

증감연산자가 뒤에 붙어있으면 그 다음 라인에 연산이 된 값을 적자

  1. 논리부정연산자는 !이고 앞쪽에 붙인다
boolean isEnd = true
boolean isStart = !isEnd // false
  1. 형 변환의 우선순위 주의
int x2 = 5;
int y2 = 2;
System.out.println((double)(x2/y2));

정수끼리 계산하면 2.5나와도 int로 변환되어서 2가 된다. 그 상태에서 double로 형 변환하면 2.0이 나옴

  1. string을 비교할 때는 == 보다는 .equals()를 사용하자!
    (==을 사용할 경우 기본 타입은 변수의 값을 비교하지만 참조 타입은 객체의 주소를 비교하기 때문에 원치 않는 결과를 얻을 수도 있다.)

  2. 복합대입연산자는 연산자를 실행하고 값의 저장까지 이루어진다. ex. +=, -=, *=, /=, %=

  3. 복합대입연산자를 사용할 때 타입 형변환의 함정..

int num1 = 100;
num1 /= 50.0; // 이 식은 아래식과 같다
num1 = int(num1 / 50.0) 

타입 형변환이 아래에서 한번만 되서 원하지 않는 값을 얻을 수도 있다. 오히려 풀어쓰는 것이 더 안전하고 가독성이 좋을 수도 있다

참고: https://cinnamonc.tistory.com/208

  1. 삼항연산자
    조건식 ? 값 or 연산식(1) : 값2 or 연산식2(2)

조건식이 참일 경우 (1)실행 거짓일 경우 (2)
거짓인 경우에서도 참 거짓 나눠서 삼항연산자를 중첩시킬수 있음

profile
안녕하세요!

0개의 댓글