* 연산자 : 계산에 사용되는 기호 (순서 외워두면 좋음)
1. 최우선 . (점) [] (배열) () (괄호)
2. 단항 ! (반전), ~ (비트반전), +/- (부호연산), ++/-- (선행증감)
3. 산술 +, -, /, *, %(모듈러)
4. 쉬프트 <<, >>, >>>
5. 관계 >, <, >=, <=, == (같아?), != (달라?)
6. 비트 & (and), | (or), ^ (xor)
7. 논리 && (and), || (or)
8. 삼항 조건식 ? 참일때 : 거짓일때 ;
9. 대입 =, +=, -=, /=, %= , ..... 등등 많음 (값을 넣음, 값 저장)
10. (후행증감) ++/--
(복습)
package jun05;
public class Operator {
public static void main(String[] args) {
// 정수 기본타입으로 number에다가 1이라고 저장해주세요.
int number = 1;
// int number; 선언만 하고 초기화는x
// System.out.println(number);
// > Error : The local variable number may not have been initialized
// * 지역변수는 선언 이후 초기화까지 해줘야함!
// 선행증감 & 후행증감
System.out.println(++number); // 2
System.out.println(number); // 2
number = 1;
System.out.println(number++); // 1
System.out.println(number); // 2
// int num2 += --number; (num2에 대해 선언만하고 초기화x,
// int num2 = num2 + --number; 초기화 되지 않아 연산불가)
// > Error : The local variable num2 may not have been initialized
//
// int num2 = --number; 초기화x 상태에서 저장은 가능.
number = 1;
int num2 = --number + 10;
// 3 1 2
int num3 = ++number + --num2;
// 3 1 2 1
System.out.println(number); // 0 -> 1
System.out.println(num2); // 10 -> 9
System.out.println(num3); // 10
number = num2 = num3 = 0; // 모든 값을 0으로 초기화
number = num2-- + num3++;
// 2 3 1 3
System.out.println(number); // 0
System.out.println(num2); // -1
System.out.println(num3); // 1
}
}
[불리언 & 쉬프트]
boolean check = false;
check = 1 + 2 != 4;
System.out.println(check); // true
check = number == num2;
System.out.println(check); // false
number = 10; // 이진수 : 1010
number = number << 2; // 이진수 : 101000
System.out.println(number); // 십진수 : 40
number = 2; // 이진수 : 10
number = number << 2; // 이진수 : 1000
System.out.println(number); // 십진수 : 8
number = 40; // 이진수 : 101000
number = number >> 2; // 이진수 : 1010
System.out.println(number); // 십진수 : 10
[ 2, 8, 16 진법 입력하기 ]
10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | .. | 15 | 16 | .. | 26 | 27 | .. | 32 ... |
2 | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | .. | |||||||
8 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | .. | 17 | 20 | .. | ||||
16 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | .. | F | 10 | .. | 1A | 1B | .. | 20... |
- 2진법 : 2개의 숫자(0~1)를 이용해서 수를 표현
- 8진법 : 8개의 숫자(0~7)를 이용해서 수를 표현
- 16진법 : 10개의 숫자(0~9)와 6개의 문자(A~F)를 이용해서 수를 표현
System.out.println(Integer.toBinaryString(11)); // 10진수 -> 2진수
System.out.println(Integer.toOctalString(15)); // 10진수 -> 2진수
System.out.println(Integer.toHexString(32)); // 10진수 -> 2진수
//입력
num2 = 10; // 10진수
System.out.println(num2); // 10
num2 = 0B1010; // 2진수 -> 0B + 2진수
System.out.println(num2); // 10
num2 = 0B1;
System.out.println(num2); // 1
num2 = 0B10;
System.out.println(num2); // 2
num2 = 0B11;
System.out.println(num2); // 3
num2 = 010; // 8진수 -> 0 + 8진수
System.out.println(num2); // 8
num2 = 020;
System.out.println(num2); // 16
num2 = 0X15; // 16진수 -> 0X + 16진수
System.out.println(num2); // 21
num2 = 0XF;
System.out.println(num2); // 15
num2 = 0X20;
System.out.println(num2); // 32
[비트 반전] ...... 많이는 안씀
// 비트 반전 ~ (1 -> 0 / 0 -> 1 )
System.out.println(Integer.toBinaryString(1)); // 1
System.out.println(Integer.toBinaryString(-1));
// 00000000000000000000000000000001
// 11111111111111111111111111111111
System.out.println(Integer.toBinaryString(~1));
System.out.println(Integer.toBinaryString(~-1));
// 11111111111111111111111111111110
// 00000000000000000000000000000000
System.out.println(Integer.toBinaryString(2)); // 10
System.out.println(Integer.toBinaryString(~2));
// 00000000000000000000000000000010
// 11111111111111111111111111111101
System.out.println(0B11111111111111111111111111111101); // -3
System.out.println(Integer.toBinaryString(5)); // 101
// 00000000000000000000000000000101
System.out.println(Integer.toBinaryString(-5));
// 11111111111111111111111111111011
System.out.println(Integer.toBinaryString(~-5)); // 100 = 4
// 00000000000000000000000000000100
[비트 연산자] _ & | ^
// & (and)
number = num2 = num3 = 0;
number = 2; // 10
num2 = 3; // 11
// 10 -> 2 (10진수)
num3 = number & num2; // 둘다 1일때 1
System.out.println(num3); // 2
number = 2; // 010
num2 = 4; // 100
// 000
num3 = number & num2;
System.out.println(num3); // 0
number = 2; // 010
num2 = 6; // 110
// 010
num3 = number & num2;
System.out.println(num3); // 2
number = 3; // 011
num2 = 6; // 110
// 010
num3 = number & num2;
System.out.println(num3); // 2
number = 3; // 011
num2 = 7; // 111
// 011
num3 = number & num2;
System.out.println(num3); // 3
// ****************************************************************
// | (or)
number = 3; // 011
num2 = 7; // 111
// 111 -> 7 (10진수)
num3 = number | num2; // 하나라도 1이 있으면 1
System.out.println(num3); // 7
number = 2; // 010
num2 = 7; // 111
// 111
num3 = number | num2;
System.out.println(num3); // 7
number = 2; // 010
num2 = 5; // 101
// 111
num3 = number | num2;
System.out.println(num3); // 7
// ****************************************************************
// ^ (xor)
number = 2; // 010
num2 = 5; // 101
// 111 -> 7 (10진수)
num3 = number ^ num2; // 서로 값이 다를 때 1, 같은 때 0
System.out.println(num3); // 7
number = 2; // 0010
num2 = 8; // 1000
// 1010
num3 = number ^ num2;
System.out.println(num3); // 10
number = 2; // 0010
num2 = 10; // 1010
// 1000
num3 = number ^ num2;
System.out.println(num3); // 8
number = 2; // 0010
num2 = 11; // 1011
// 1001
num3 = number ^ num2;
System.out.println(num3); // 9
[논리 연산자]
// 논리 연산자
// (왼쪽) && (오른쪽) = 둘다 참일때 참
System.out.println( 1 + 2 == 4 && 1 + 3 == 4 ); // false
System.out.println( false && true ); // false
System.out.println( 1 + 2 == 3 && 1 + 2 == 4 ); // false
System.out.println( true && false ); // false
System.out.println( !(1 + 2 == 3) && 1 + 2 == 4 ); // false
System.out.println( false && false ); // false
System.out.println( !(1 + 2 == 4) && 1 + 2 == 3 ); // true
System.out.println( true && true ); // true
// ********************************************************************************
// (왼쪽) || (오른쪽) = 둘 중 하나만 참이면 참
System.out.println( true || false ); // true
System.out.println( false || !false ); // true
System.out.println( false || false ); // false
System.out.println( true || true ); // true
// 참 || 거짓 = 참
// 거짓 || 참 = 참
// 거짓 || 거짓 = 거짓
// 참 || 참 = 참
[ if 조건문 ]
[if 조건문]
if (조건식) {
참일때 실행할 명령어;
} else {
조건이 거짓일때 실행할 명령어;
}
조건식 ? 참일때 : 거짓 ;
*/
1) number = 1;
System.out.println( number == 1 ? "1입니다" : "2입니다." );
2) if(number == 1) {
System.out.println("1입니다");
} else {
System.out.println("2입니다");
}
// 1, 2 두 표현식 결과값은 같음
check = false;
number = 1;
check = number == 1 ? true : false;
System.out.println(check); // true
check = number != 1 ? true : false;
System.out.println(check); // false
check = number > 1 ? true : false;
System.out.println(check); // false
check = number > 1 || number == 1 ? true : false;
System.out.println(check); // true
'국비과정 > JAVA (기초)' 카테고리의 다른 글
20230605 _[3일차]_04. 기본입출력 (0) | 2023.06.06 |
---|---|
20230605 _[3일차]_03. if문 (0) | 2023.06.06 |
20230605 _[3일차]_01. 데이터타입 복습 (0) | 2023.06.06 |
20230602 _[2일차]_04. 연산자 (1) | 2023.06.04 |
20230602 _[2일차]_03. 데이터타입2 (0) | 2023.06.04 |