< 기본적으로 연산은 "왼쪽" 부터 순서대로 실행된다. >
int a= 100; int b = 200;
sout ( " result =" + a + b );
=> result=100200
// 왼쪽부터 더해서 result=100 문자열이 되버리고 거기에 200이 더해짐
=> 괄호처리 필요
< char은 표현코드값을 품고있다. >
char c1 = 'A';
sout ( 100 + c1 ) ;
=> 165 ( 100 + 65 )
// A라는 char 는 표현코드값이 숫자로 65다. ( B는 66 C는 67 . . . )
// 더하라고하면, c1 을 자동형변환 해서 숫자로 바꿔서 더해버림 => 자동형변환
sout ( a + "" + c1) => 100A 출력 . // "" 이용해서 구분해서 출력 가능하다
< 강제 형변환 >
long num = 1414143413431;
int small = (int) num;
sout( small );
=> int 최대값이 나오거나 그런게 아니라 아예 다른 값이 나온다. ( 조심히 써야한다 )
강제 형변환은 MAX_VALUE(최대 표시가능 숫자) 를 넘지 않는 선에서,
실수를 정수로 강제 형변환 시킬때 유용하다.
그 외에, 더 큰 datatype 을 작은 datatype 으로 바꾸는 건, 값의 소실이 이상하게 나타날 수 있으므로 조심하자.
< "실수" 로 뽑기 >
double avg = ((sum)/3);
// avg를 실수로 뽑아야하는데 sum 과 3 이 둘다 int 이므로 답이 무조건 int로만 나온다.
double avg = ((sum)/(double)3);
// 연산 하는 값 둘중에 하나를 double 로 강제형변환 시켜주면 => 전체 결과값도 double 로 자동형변환
=> 답을 double 로 준다.
double avg = (double)((sum)/3);
// 연산식 전체에 double 형변환 해줘봤자 이미 int로 계산 끝난 상태라서 int 값만 준다.
연산하는 숫자 중에 하나를 double 로 바꿔야 함.
< x = y 대입연산자 >
= 는 두 값이 같다는 뜻이 전혀 아니다.
= 는 y (오른쪽) 의 값을 x (왼쪽) 으로 대입 한다는 뜻이다. (집어 넣는다.)
( SQL 등에서는 = 가 "같다" 의 의미로 쓰인다. 헤깔리지 말자.
JAVA 에서 = 는 "대입" 일 뿐이다.
== 이게 "같다" 의미로 쓰인다. )
< 조건 3항 연산자 >
=> True 일때 "이거"/False 일때 "저거" / 심플하게 딱 두개로 나눌 때 쓴다.
( => True 일때 더 들어가서 다른 조건 더 걸고 싶을 때,
/ 혹은 True 일때 "이거" 뿐만아니라 "저거 요거" 더 시키고 싶을때는
if 문 써야겠지. )
Type x = A ?
B :
C ;
sout(x);
=> A(Boolean 타입) 의 결과를 분석하여
True 이면 B 실행 / False 이면 C 실행
// 실행할 B와 C 의 Datatype 에 따라서 그 type 에 담아서 사용
// 혹은 return ( boolean ) 으로 사용
// A,B,C => 딱히 괄호 처리를 요하지 않음
<return 예시>
return ( A != null ) ?
RequestEntity.status(200) :
RequestEntity.status(400);
<String 타입 사용 예시>
String BB = booknum>stnum ?
"1명의 학생당 "+ (int)(booknum/stnum)+"권씩, 남은 책은 " + (booknum%stnum)+ "권이다. " :
"나워줄 수 없습니다";
System.out.println(BB);
int input=21;
String S = input %3 == 0 && input %7 == 0 ?
"3의 배수이면서 7의 배수이다" :
"동시에 3의 배수이면서 7의 배수는 아니다";
System.out.println(S);
'Back to the Java' 카테고리의 다른 글
while + true + if + break; 조건 나중에 주기! (0) | 2022.06.22 |
---|---|
Back to the Basic 기본을 다잡자 2 (0) | 2022.06.21 |
OOP 객체를 지향하는 프로그래밍을 지향하자 (0) | 2022.06.12 |
BMI 비만 측정기, String.format() (0) | 2022.06.11 |
Math.random() 메소드 이용한 디아블로 전투 (0) | 2022.06.09 |