JAVA / 형변환, 연산자, 문장

Cheol·2023년 5월 22일
1

Java

목록 보기
2/8
post-thumbnail

eud day 10

묵시적 형 변환

  • 자동 형 변환 또는 promotion 이라고 한다.
  • 기본 데이터 형 및 참조 데이터 형 모두 가능하다.
  • 반적으로 수치형은 상호간에 데이터 형 변환이 가능하며, 다음은 자동으로 형 변환 가능한 형태이다.

!! 다만 크기가 더 큰 변수를 작은 변수로 형 변환 하기 위해서는 명시적 형 변환이 필요하다.

명시적 형 변환

		short x = 10;
		short x2 = 20;
//		short result = x + x2;	연산을 하게 되면 정수형의 기본인 int로 자동 형 변환이 되기 때문에short타입에 저장할 수 없음
		short result = (short)(x + x2);
		int x3 = x+x2;
		System.out.println(x3);
		float result3 = (float)(10*1.0);
        //소수점 곱셈 연산이 double형으로 바뀌기 떄문에 float형으로 형 변환 해줘야 저정 가능하다. 
		System.err.println("10"+1+2+3);	//10123
		System.err.println(1+2+3+"10"); //610
        // 문자형 인식 후 더하기 연산자와, 더하기 연산 연산 후 문자 인식은 결과 값이 다르다.

!! 중요 !!

		String k  = "10";
		System.out.println(k+20);	// 1020
		int k2 = Integer.parseInt(k);	// String type의 숫자를 int형으로 형변환
		System.out.println(k2+20);	// 30
        
        System.out.println(10+"");	//문자형 10
        System.out.println(10+"");	//1010
		int n = 10;
		short n2 = (short)n;
		
		short x = 10;
		short x2 = 20;
		short x3 =(short) (x+ x2);	//연산 후 Int형으로 바뀌기 떄문에 Short형으로 바꿔준다.
		
  • String type 형 변환 형태들
Byte.parseByte();

Short.parseShort();

Integer.parseInt();

Long.parseLong();

Float.parseFloat();

Double.parseDouble();

---------------------
String.valueOf(); 	//다른 type을 String형으로 변환

상수

: 값을 변경하지 못하게 변수를 상수로 선언한다.
final 키워드를 사용한다.

		final int SIZE  = 100;	
		SIZE = 200;					//에러
		System.out.println(SIZE);
		
		int num = 10;
		num = 20;
		System.out.println(num);

상수는 알아보기 쉽게 대문자로 선언한다.



연산자 (Operator)

산술연산자

: 2항 연산자로서 연산을 나타내는 연산자이다. 데이터 형 변환이 자동으로 발생할 수 있다.

비교연산자

: 비교연산자는 두 개의 값의 크기를 비교하는 연산자로서, 연산결과는 반드시 true또는false값이 나온다. 따라서 boolean 데이터형의 변수로 저장할 수 있으며 비교 연산자는 if문 , while문 같은 제어문에서 주로 사용된다.

대입연산자

: 변수에 새로운 값을 저장하는 경우에 사용되는 연산자이다. 변수에 기존값을 바로 저장할 수도 있고 더해서 저장하거나 빼서 저장하는 것처럼 산술연산해서 저장할 수 있는 방법이다.

증감 연산자

기존 변수가 가진 값에 1을 증가하거나 1을 감소하는 경우에 사용하는 연산자이다. 연산자를 앞에 붙이면 전위 연산자라고 하며, 변수의 뒤에 붙이면 후위 연산자라고 한다. 전위 연산자 및 후위 연산자에 따라서 연산 결과 값이 달라질 수 있기 때문에 주의해서 사용한다.

논리 연산자

: true와 false값을 이용하여 논리연산을 수행하는 연산자로서, 연산 결과는 비교 연산자와 마찬가지로 반드시 논리 값이다. boolean데이터형의 변수로 저장할 수 있으며 if문, while문과 같은 제어문의 조건 검사에 주로 사용된다.

삼항 연산자

: 3개의 항으로 구성되어진다.

변수 = (조건식) ? 값1 : 값2 ;

조건식이 true면 값1을 변수에 저장하고, false면 값2를 변수에 저장한다. 값1과 값2사이에는 :(콜론)을 사용하며 중첩도 가능하다.


Double 연산 주의!

Double type으로 연산할 때 출력값이 제대로 나오지 않는다.

		double a = 0.1;
		double b = 0.2;
		System.out.println(a+b);
        // --> 0.30000000000000004

해결: 객체를 만들고 연산할 숫자를 String 타입으로 바꿔서 계산한다.

		double a = 0.1;
		double b = 0.2;
        
		BigDecimal c = new BigDecimal(String.valueOf(a));
		BigDecimal d = new BigDecimal(b + "");
		System.out.println(c.add(d));
		System.out.println(c.subtract(d));
		System.out.println(c.multiply(d));
		System.out.println(c.divide(d))

문자열 비교 주의!


public class Sample10_string {

	public static void main(String[] args) {

		String name1 = "홍길동";
		String name2 = "홍길동";
		String name3 = new String("홍길동");
		
		System.out.println(name1 + "\t" + name2 + "\t" + name3);
//		문자열 내용 비교는 ==이 아닌 .equals함수를 이용한다.
		System.out.println(name1==name2);			//true
		System.out.println(name1==name3);			//false
		System.out.println(name1.equals(name3));	//true
		System.out.println(name2.equals(name3));	//true
		
	}

}

문장 (statment)

: 자바의 문장은 용도에 따라서 다음과 같이 분류할 수 있다.
자바의 문은 실행문과 비실행문으로 나누며, 실행문은 다시 순차문과 제어문으로 구별된다.

0개의 댓글