1. 조건연산자 (삼항연산자)
(형식 ) 조건식 ? 식1 : 식2
예시
int a=14, b=21, c=43, d=59;
int max;
int min;
//조건연산자
// (형식 ) 조건식 ? 식1 : 식2
max =(a>b) ? a : b;
max =(max>c) ? max : c;
max = (max>d)? max : d;
System.out.println("max : "+ max);
min =(a<b) ? a : b;
min = (min<c)? min : c;
min = (min<d)? min : d;
System.out.println("min : "+min);
2.형변환
(Def) : 프로그램은 데이터와 명령으로 구분되어 있다.
데이터를 처리하기 위해서는 변수가 필요하고, 데이터의 종류에 따라 다양한자료형을 사용한다.
그런데 어떠한 경우에 서로 다른 자료형이 혼재되어 사용되기도 한다.
서로 다른 자료형 사이의 연산을 위해서는 자료형을 일치시키는 작업이 필요하다.
이처럼 서로 다른 자료형 사이에서 자료형이 변환되는 것을 형변환(Casting)이라고 한다.
-확대 형변환(Widening) : 자동으로 일어남/ 묵시적 형변환
-축소 형변환(Sarrowing) : 캐스팅 해야함/명시적 형변환
-자동규칙
:byte->char, shor -> int ->long ->float->double
-수식에서의 형변환
:char,byte,shoar는 int로 형변환 되고, float는 double로 변환됨
2개의 피연산자 중 하나가 double 이면 나머지도 double이고 결과도 double
: 수식의 모든 float는 double로 변환되어 연산을 수행함
-대입문에서의 형변환
: 오른쪽 값이 왼쪽의 자료형의로 변환되어 저장됨.
: 모든 문자는 정수로 변환되어 저장됨
: 실수형이 정수형으로 변환될때 소숫점 이하는 절삭되어 저장
- 형식 | (자료형) 수식;
예시
byte bb;
int ii = 365;
double dd = 1024.512;
System.out.println("축소 형 변환 결과 ");
bb = (byte)ii;
System.out.println("int 형 365를 byte 형으로 바꾸면 : "+ bb);
/*365 는 101101101 이다 이를 바이트로 바꾸면 8비트만 표현 가능함으로 (8자리)
맨 앞의 1 잘려서 없어짐. 그러면 01101101이 남음 이는 10진수로 109이다.
*/
ii = (int)dd;
System.out.println("double 형 1024.512를 int형으로 바꾸면 : "+ ii);
//소수점 이하 삭제
bb = (byte)dd;
System.out.println("double형 1024.512를 byte형으로 바꾸면 : "+dd);
예시2
class Operator_10
{
public static void main(String[] args)
{
float ff = 0.1f;
double dd = 0.1;
double dd2 = (double)ff;
System.out.println("10.0==10.0f "+(10.0==10.f )+"\n");
//소수점아래 0은 오차 없음
System.out.println("0.1==0.1f"+(0.1==0.1f )+"\n");
//소숫점 아래는 오차값이 존재함으로 false
//실수는 오차를 가지고 있다.
System.out.println("ff = "+ff+"\n");
System.out.println("dd= "+dd+"\n");
System.out.println("dd== 0.1"+(dd==0.1)+"\n");
System.out.println("dd2 = "+dd2+"\n");
System.out.println("ff==dd "+(ff==dd)+"\n");
System.out.println("dd==dd2 "+(dd==dd2)+"\n");
System.out.println("dd2==ff "+(dd2==ff)+"\n");
//dd2는 ff를 형변환 한 것이므로 같은 값
}
}
←출력된 결과
'KH > JAVA' 카테고리의 다른 글
#6.for(연습문제) (0) | 2022.07.11 |
---|---|
#5 Switch문,Math.random() (0) | 2022.07.08 |
#4 cmd(명령 프롬프트) (0) | 2022.07.07 |
#3 if else (0) | 2022.07.07 |
#2 scanner, printf,in.read() (0) | 2022.07.07 |