CastExp class 생성 (Casting : 형변환)
기본형 타입 크기 비교
byte < short = char < int < long < float < double
강제 형변환 : 큰 내용을 작은 그릇에 담을 때
자동 형변환 : 작은 내용을 큰 그릇에 담을 때 (= 묵시적 형변환)
int intValue=65;
char charValue=(char) intValue;
int 가 char 보다 큰데, int 를 char 로 변환시키려 할 때 -> 강제 형변환 사용
(char) 부분이 강제 형변환 시켜주는 부분
intValue=charValue;
위 같은 경우는 자동 형변환이 된다. (char < int)
CharExp class 생성
package com.tech.gt01;
public class CharExp {
public static void main(String[] args) {
char c1='A'+1;
System.out.println("c1:"+c1);
System.out.println("c1:"+(int)c1);
int c2=70;
System.out.println("c2:"+c2);
System.out.println("문자로 표현:"+(char)c2);
}
}
결과
c1:B
c1:66
c2:70
문자로 표현:F
ASCII 코드표에서 A의 값은 65, 65+1 = 66 => B, 70 => F
T = 1, F = 0
and (&) : 둘 다 T 면 T
or (|) : 둘 중 하나라도 T 면 T
xor (^) : 두 값이 다르면 T
Not (~) : 반대
BitLogicalExp class 생성
package com.tech.gt01;
public class BitLogicalExp {
public static void main(String[] args) {
System.out.println(Integer.toBinaryString(45));
System.out.println(Integer.toBinaryString(25));
System.out.println(45&25); // 비트연산자 and (&)
System.out.println(45|25); // 비트연산자 or (|)
System.out.println(45^25); // 비트연산자 xor (^)
}
}
결과
101101
11001
9
61
52
이같은 논리연산은 논리식, 조건식에 필요함
DenyLogicalOperatorExp class 생성
package com.tech.gt01;
public class DenyLogicalOperatorExp {
public static void main(String[] args) {
boolean play1=false;
boolean play2=false;
System.out.println(play1);
System.out.println(!play1);
System.out.println(play2);
System.out.println(!play2);
play2=!play2; // 비교연산자 not (!), 역함수
System.out.println(play2);
}
}
결과
false
true
false
true
true
// 사용 예시
boolean play3=true;
boolean play4=false;
boolean result1=play3 || play4; // or
System.out.println("result1:"+result1);
boolean result2=play3 && play4; // and
System.out.println("result2:"+result2);
boolean play5=false;
boolean result3=play3 || play4 || play5;
System.out.println("result3:"+result3);
boolean result4=play3 && play4 && play5;
System.out.println("result4:"+result4);
boolean result5=play3 || play4 && play5;
System.out.println("result5:"+result5);
boolean result6=play3 && play4 || play5;
System.out.println("result6:"+result6);
결과
result1:true
result2:false
result3:true
result4:false
result5:true
result6:false
개수에 구애받지 않는다, 순서는 연산순서에 따라 결정된다.
&& 가 || 보다 먼저 연산됨
CompareOperatorExp class 생성
package com.tech.gt01;
public class CompareOperatorExp {
public static void main(String[] args) {
int num1=10;
int num2=10;
System.out.println("바로출력:"+(num1==num2));
// num1 과 num2 가 같은가? true/false
}
}
결과
바로출력:true
boolean b1=num1==num2;
// num1 과 num2 가 같은가? true/false
boolean b2=num1>=num2;
// num1 이 num2 보다 크거나 같은지? true/false
boolean b3=num1!=num2;
// num1 이 num2 가 같지 않은가? true/false
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
결과
true
true
false
>= 는 가능, => 는 불가능
char c1='A';
char c2='B';
boolean b4=c1>c2;
System.out.println(b4);
결과
false
문자도 논리연산이 가능
LongExp class 생성
package com.tech.gt01;
public class LongExp {
public static void main(String[] args) {
long var1=10;
long var2=10L;
System.out.println("var1 : "+var1);
System.out.println("var2 : "+var2);
}
}
결과
var1 : 10
var2 : 10
ArithmeticOperatorExp class 생성
package com.tech.gt01;
public class ArithmeticOperatorExp {
public static void main(String[] args) {
int v1=5;
int v2=2;
int result1=v1+v2;
System.out.println("result1 : "+result1);
int result2=v1-v2;
System.out.println("result2 : "+result2);
int result3=v1*v2;
System.out.println("result3 : "+result3);
int result4=v1/v2;
System.out.println("result4 : "+result4);
int result5=v1%v2; // 나머지 연산, 몫은 따지지 않음
System.out.println("result5 : "+result5);
}
}
결과
result1 : 7
result2 : 3
result3 : 10
result4 : 2
result5 : 1
MultiPlusExp class 생성
package com.tech.gt01;
public class MultiPlusExp {
public static void main(String[] args) {
int var1=1;
int var2=2;
int var3=3;
int result1=var1*var2*var3;
System.out.println("result1:"+result1);
int result2=var1+var2*var3; // 연산자 우선순위
System.out.println("result2:"+result2);
int result3=var1*var2+var3;
System.out.println("result3:"+result3);
}
}
결과
result1:6
result2:7
result3:5
int result4=(var1+var2)*var3;
System.out.println("result4:"+result4);
결과
result4:9
연산자의 우선순위에 따라, 연산 방향에 따라 연산 진행, 단, 괄호 우선
미션
자판기 (커피, 음식, 과자) 흐름도를 만드세요
제목 : 홍길동자판기순서도2
50개 이상
숫자 및 자연어 처리로 작성하세요
html로 첨부
내가 만든 순서도