Class/Java

#JAVA 수업 강의 2-3

열정코딩 2022. 3. 23.

# 형변환

1. 강제 형변환

 

(자료형) : 형변환 연산자

(자료형)값
(double)10 //10.0

public static void main(String[] args) {
		// 강제 형변환
		 double num1= 97.0;   > // 정수로 바꾸고 싶다 -
		 
    int num2= (int)num1  >  //97
         // double 타입을 int 바꿀수 없음, byte 가 int 보다 크기 때문에
         // 형변환 int 를 앞에 다가 써준다. 
        System.out.println("실수 > 정수: " + num2);
        
    char ch = num2;  // > char ch= (char)97  // 현재 num2 = 97
        //문자 2 byte  = 정수4byte  b 정수의 bite가 더 크기때문에 형변환  char
        System.out.println("정수 > 문자: " + ch);
		}

 

2.자동 형변환

 

a) 정수 + 실수 = 실수
   3 + 0.0 = 3.0

 

b) 문자 + 정수 = 정수
   3 + ' ' = 35

 

c)  'A' + 5 = 70
    정수, 실수, 문자 + 문자열 = 문자열
    3 + "Hello" = "3Hello"
    10 + "" = "10"
   '3' + "" = "3"

public static void main(String[] args) {
		int num3= ch;  // > int num3= (int)a;  
 //  - 4byte-  = - 2byte-
 // 형변환 할때는 조금더 큰 바이트에다가 맞춰서 변형 해줌 
  system.out.println("문자>정수 : " + num3);
 
 
 system.out.prinln('A' + 10); // >문자 숫자랑 더하게 되면 숫자가 나옴. 정수4b / 문자 2 이기 때문
 			//    '65'+ 10   = 75
 system.out.println('5' + '5'); // 53+53 // > 아스키코드표 '5' > 정수 53 
 int five = '5'; 
 system.out.println(five): 
    }

 

 

# 연산자

: 연산자 의미 
-> 3 * x + 5 /  연산을 수행하는 기호(+ , -, *, / 등)

# 피연산자
- 연산자의 연산 수행 대상
※ 모든 연산자는 연산결과를

 반환한다.

- 연산자의 우선순위
하나의 식에 둘 이상의 연산자가 있을 때, 먼저 연산하는 순위를 자동결정 하는것
원하는 우선순위가 있을 경우 괄호()를 사용할 수 있지만, 매번 수동으로 하기 번거로움
2 + 6 * 7 

>  이렇게 식이 되었있을때 우리는 자동적으로 곱하기를 먼저 한다고 생각한다. 

> 하지만 + 더하기를 먼저 계산하고 싶을때는 ( ) 가로를 해주는데 일일히 이렇게 하기가 번거로움 

 

(최 단 산 관 리 삼 대) 
-최우선 연산자
-단항 연산자
-산술 연산자
-관계 연산자(비교연산자)
-논리 연산자
-삼항 연산자
-대입 연산자

- 결합성
한 문장 안에 우선순위가 같은 여러개 있을 때
맞는 방향으로 결합하여 연산하는 성질

- 보통 왼쪽 > 오른쪽
ex) 1 + 2 + 3 + 4

sol) 
>(1+2)+3 +4
 >(3+3)+4
   >6+4
      >10

 

※예외
: 대입연산자, 단항연산자는 오른쪽 > 왼쪽
x = y = 5
> x = 5 (오른쪽에서 왼쪽으로 ) 

> 5

 #최우선 연산자
(  )    > 괄호 

#단항 연산자(피연산자가 하나)
형변환 연산자: (자료형)값
 : 피연산자의 부호를 반대로 변경
int num= -10;
num = -num;         //-num = -10 >  -(-10)
sysout(num)   //10

# 산술 연산자
+ , -, *, / (사칙연산)
% (모듈러스): a%b  // > a를 b로 나눈 나머지
10 % 3 // 1

#관계 연산자(비교연산자)
: 두 피연산자를 비교해서 true 또는 false 반환

> , < : 초과, 미만
>= , <= : 이상, 이하
== : 같다
!= : 다르다

ex) a < b       - a보다b가 크다
    a == b      - a 와 b는 같다

    a!= b        -  b는 a랑 다르다 
 

ex)  x = 2 y=4
      x * 2 < y * 4
     4 < 16 // true     > 우선순위가 이미 정해져 있음 * 는 산술연산자. 산술연산이 우선순위. 

 

- 조건식

: 관계연산자를 이용해서 만들어지는 식 / 조건을 제시하는 식
: 자바에서는 0과 1 대신 결과가 참 또는 거짓(true, false) 이라는 값 사용. 

 

논리형)  boolean true,false

# 논리 연산자
: 조건식을 연결할 때 사용하는 연산자

*A 와 B는 (조건식 가정)
 1 . A && B 

(AND결합) : 두 조건식의 연산결과가 둘다 true 라면 true
둘 중에 하나라도 false 라면 false
2.  A || B

(OR결합) : 두 조건식의 연산 결과중 하나라도 true면 true

ex) 

y > 5 && y < 10       =>   y는 관계 연산자  / & 는 논리연산자 

=> 관계연산자를 먼저 수행된 후, 논리연산자가 수행

5 < y < 10 // 이렇게 쓰면 자바 에서는 에러남 

# 삼항 연산자
입력방법 :    조건식 ? 값1(이면 오는 부분) : 값2(거짓이면 오는 부분)
                 조건식의 연산결과가 true라면 값1 선택
                 조건식의 연산결과가 false라면 값2 선택

삼항연산자=  사용부분 통째로가 하나의 값
경우의 수가 딱 두가지의 값으로 나오는 경우에 사용하는 것이 좋다.

# 대입 연산자(=)
연산이 모두 끝나야 연산결과를 저장할 수 있기 때문에 우선순위가 가장 낮다.

 

• 삼항연산자 문제 풀이 •

 

public static void main(String[] args) {
int num= 10;    
// 삼항연산자 >조건식? 값1 ㅣ 값2 
// num == 0 ? "123"  : "456"; > 변수에다가 담자 / 맞춰줘야함/ true : false 
String result = num == 0 ? "123" : "456" ;
// " 자료형" 일치 시키기 
system.out.println(result);

system.out.println(num==1? 666: "abc"); > // 삼항연산자값을 그대로 사용할때는 자료형 그대로 씀
// 변수에 담지 않을 경우 값의 자료형 불일치 = abc 그대로 출력이 됨 
}

 

 

 

 

 

 

 

 

'Class > Java' 카테고리의 다른 글

#JAVA 수업 강의 3-1  (0) 2022.03.25
#JAVA 수업 강의 3  (8) 2022.03.24
#JAVA 수업 강의 2-2  (11) 2022.03.18
#JAVA 수업 강의 2-1  (0) 2022.03.18
#JAVA 수업 강의 2  (2) 2022.03.17

댓글