[22.10.31] 8일차 [백엔드] Java 자바의 연산자(1)

W·2022년 10월 31일
0

국비

목록 보기
15/119

자바의 연산자

  • 자 : 연산에 사용하는 기호 + - * /
  • 항 : 연산에 사용하는 값 3 + 4
    → 단항연산자
    → 이항연산자, 삼항연산자
    연산자 우선 순위 : ()괄호 우선, 우선순위
  1. 산술연산자
    + 더하기, - 빼기, * 곱하기, / 나누기, % 나머지
System.out.println(10+2); // 12
System.out.println(10-2); // 8
System.out.println(10*2); // 20
System.out.println(10/2); // 5
System.out.println(10%2); // 0

int형 변수 a 선언하고 10 저장,
int형 변수 b 선언하고 3 저장
int형 변수 c 선언만 수행
출력 예: a+b=c

int a=10;
int b=3;
int c;
c=a+b;
System.out.println(a+"+"+b+"="+c);
//10+3=13
    
c=a-b;
System.out.println(a+"-"+b+"="+c);
//10-3=7

c=a*b;
System.out.println(a+"*"+b+"="+c);
//10*3=30
		
c=a/b;
// 몫
System.out.println(a+"/"+b+"="+c);
//10/3=3 [정수형/정수형=정수형]

c=a%b;
// 나머지
System.out.println(a+"%"+b+"="+c);
// 10%3=1

정수형 수학점수 math 90, 영어점수 eng 70 → 변수선언
정수형 total 총점, avg 평균

int math = 90;
int eng =  70;
int total = math+eng;
int avg = (math+eng)/2;
System.out.println("총점 : "+total);
System.out.println("평균 : "+avg);

산술연산자 우선순위 : ① * / % ② + -

  1. 대입연산자(할당연산자) (=)
    변수에 값을 대입(저장) 연산자
    우변에 데이터(변수, 리터럴, 계산식)를 좌변 변수에 대입(= 저장, 초기화)
    연산의 방향 우 → 좌로 진행
    x=y=3
    y에 3을 대입하고 x에 y f를 대입
    모든 연산자 중에서 우선순위가 가장 낮다.
int x, y;
x=y=3;
System.out.println(x);
System.out.println(y);
  • 확장대입연산자(+=, -=,*=,/=, %=)
    대입연산자와 산술연산자 조합한 연산자
    좌변, 우변의 데이터끼리 산술연산을 먼저 수행
    산술 연산의 결과를 좌변의 변수에 대입
    자동 형변환 일어나지 않음(같은 형끼리 해야 됨)
int b = 10;
b+=1;//b=b+1;
System.out.println(b);

b= 20; // 기존 변수 -10 한 결과 저장
b-=10;
System.out.println(b); //1 0
		
b=10; // 기존 변수 *10 한 결과 저장
b*=10;
System.out.println(b); // 100
		
b=100; // 기존 변수 /10 한 결과 저장
b/=10;
System.out.println(b); // 10
		
b=100; // 기존 변수 %10 한 결과 저장
b%=10;
System.out.println(b); // 0

기존의 기억장소에 있는 값은 사라지고 우변의 값을 덮어쓰게 된다.

byte 형변수 b1, b2 선언하고
10, 20 초기값 저장
b1, b2 더하기 계산을 b1에 저장

byte b1=10;
byte b2=20;
b1=(byte)(b1+b2); 
// b1, b2 더하기 계산(int형)을 b1(형변환)에 저장
System.out.println(b1); // 30

b1+=b2; // += 이용 (형변환X)
System.out.println(b1); // 50 (30+20)

char ch='A';
ch = (char)(ch+3);
System.out.println(ch); // D
ch+=3;
System.out.println(ch); // G (D+3)
  1. 비교(관계)연산자
    > 크다, >= 크거나 같다, < 작다, <= 작거나 같다, == 같다, != 같지 않다
    두 피연산자 간의 대소 관계를 비교
    결과 : true/false 형태
    두 피연산자는 형이 일치 : 연산 수행
int a=10;
int b=5;
System.out.println("a > b => " + (a>b)); // a > b => true
System.out.println("a >= b => " + (a>=b)); // a >= b => true
System.out.println("a < b => " + (a<b)); // a < b => false
System.out.println("a <= b => " + (a<=b)); // a <= b => false
System.out.println("a == b => " + (a==b)); // a == b => false
System.out.println("a != b => " + (a!=b)); // a != b => true

boolean c = (a!=b);
System.out.println(c); // true

System.out.println('A'>'B'); // false
// char > char => int > int 변환되어 
// 문자가 아니고 정수(유니코드)값을 비교
// 'A' (65) 'B'(66) 보다 크지 않으므로 false

char ch='A';
// ch==65
System.out.println(ch==65); // true

// 3==3.0 int를 double 변환 후 비교 → 3.0 ==3.0 비교
System.out.println(3==3.0); // true

// 0.1 == 0.1f float가 double 변환 후 연산. 
// 근사치가 표현 → 0.1 == 0.100000xx false
System.out.println(0.1 == 0.1f); // false
System.out.println((float)0.1 == 0.1f); // true
  1. 논리연산자
    - 관계연산자를 2개이상 쓸 때, 연결 시켜 줌
    결과 true/false
    - AND &&(&), OR ||(|), NOT !
    - 두 피연산자 간의 논리적인 판별을 수행하는 연산자
    - 두 피연산자 : true/false 연산 -> 결과 true false
    - 관계(비교)연산자 연결해서 사용
  • &&(&) AND연산자, 논리곱
    두 피연산자가 모두 true일 경우 true,
    하나라도 false이면 false
    T AND T => T, T AND F => F
    F AND T => F, F AND F => F
boolean a = false;
boolean b = true;
		
System.out.println("T AND T = " + (b && b));
// T AND T = true
System.out.println("T AND F = " + (b && a));
// T AND F = false
System.out.println("F AND T = " + (a && b));
// F AND T = false
System.out.println("F AND F = " + (a && a));
// F AND F = false
  • ||(|) OR연산자, 논리합
    두 피연산자가 false일 경우 false,
    하나라도 true이면 true
    T AND T => T, T AND F => T
    F AND T => T, F AND F => F
boolean a = false;
boolean b = true;

System.out.println("T OR T = " + (b || b));
// T OR T = true
System.out.println("T OR F = " + (b || a));
// T OR F = true
System.out.println("F OR T = " + (a || b));
// F OR T = true
System.out.println("F OR F = " + (a || a));
// F OR F = false
  • NOT 연산자 - 논리부정
    단항연산자(피연산자)
    !F -> T, !T -> F
System.out.println("!F = " + !a); // !F = true
System.out.println("!T = " + !b); // !T = false
  • 논리연산자 4~10 수 >=4 논리연산자 수<=10
int num=7;
System.out.println(num>=4); // true
System.out.println(num<=10); // true
System.out.println(num>=4 && num<=10); // true
  • 성별 1, 3 남 => true
    하나라도 true이면 남 => true
    2, 4 => 여=> false
int gender = 1;
System.out.println(gender==1); // false
System.out.println(gender==3); // true
System.out.println(gender==1 || gender==3); // false

0개의 댓글