데이터 과학

연산자 본문

프로그래밍 언어론/JAVA 기초

연산자

티에스윤 2022. 8. 21. 22:13

수치 연산자 (Arithmetic Operators)

 

사칙연산에 대한 내용으로 일반적인 수학 연산과 같습니다.

우선순위 괄호 ()를 먼저 계산하는 것도 마찬가지입니다. 

 

(  ) 괄호, 1순위

*, /,%  2순위

+,-  3순위

 

 

public class Calculate {

   public static void main(String[] args) {

       int input = 65000;

       int hour, minute, second;

       hour = input / 3600;

       minute = (input % 3600) / 60;

       second = (input % 3600) % 60;

       System.out.print(input + "초는 ");

       System.out.print(hour + "시간 " + minute + "분 " + second + "초 입니다.");

} }

 

결과: 

65000초는 18시간 3분 20초 입니다.

 

% 연산자는 modulus 연산자라고 하여 나머지 값을 출력합니다. 

 

public class Calculate2 {
   public static void main(String[] args) {
        System.out.print(25%9*6+3+15/6);
} }

결과: 

47

 

 

public class Calculate3 {
   public static void main(String[] args) {
        System.out.print(25%9*(6+3)+(15/6));
} }

 

결과:

65

 

 

관계 연산자(Relational Operator)

 

두 값을 비교하여 그 결과를 돌려주는 연산자로 값의 크기를 비교할 때 사용하는 연산자입니다. 

 

관계연산자 의미
A<B
A>B
A<=B
A>=B
A==B
A!=B
A는 B보다 작다
A는 B보다 크다
A는 B보다 작거나 같다
A는 B보다 크거나 같다
A는 B와 같다
A는 B와 같지 않다

 

 

public class Calculate4 {

   public static void main(String[] args) {
    int a = 1;
    int b = 2;
    int c = 3;
    int d = 4;
    int e = 4;
    double f = 3.14;
    double g = 3.145;

System.out.println(a < b);
System.out.println(a > b);
System.out.println(a + b <= c);
System.out.println(a + b >= c);
System.out.println(c==d);
System.out.println(d==f);

if (a != b) {
System.out.println("다르다");
}

System.out.println(f == g);
System.out.println(f != g);

String h = "Hello JAVA!"; 

System.out.println(h.equals("Hello java!")); 
System.out.println(h.equals("Hello JAVA!"));

} }

 

결과:

true
false
true
true
false
false
다르다
false
true
false
true

 

 

equals 메소드는 Object class에 있는 기본 메소드입니다. 문자열 비교연산자로 별다른 선언 없이 바로 사용할 수 있습니다.

Object class는 class의 class로 기본적인 메소드들이 있어서 사용 가능합니다. 

 

equals 메소드와 비슷한 성격의 메소드로 compareTo 메소드가 있습니다. 둘의 차이점이 있습니다. 

 

 

증감 연산자(Increment/Decrement Operator)

 

++ : 증가 연산자

--   : 감소 연산자

 

 

++는 1씩 증가하는 증가 연산자입니다. 숫자가 1씩 증가합니다.

 

ㄱ. i++;

ㄴ. i=i+1;

 

위 2개의 선언에 대한 결과는 같습니다. 

 

public class IncreaseTest {
  public static void main(String[] args) {
    int x = 100, y=100;
    System.out.println("x = " + x);
    System.out.println("++x = " + ++x);
    System.out.println("y = " + y);
   System.out.println("y++ = " + y++);
   System.out.println("x = " + x + ", y = " + y);
 }
}

 

 

결과:

x = 100
++x = 101
y = 100
y++ = 100
x = 101, y = 101

 

++위치가 앞에 있는지 뒤에 있는지에 따라 출력 결과가 다르게 나옵니다. 

i++(postfix, 후치 연산자)라고 하여 먼저 출력을 하고, 1씩 증가하는 연산을 합니다.

++i(prefix, 전치 연산자)라고 하여 먼저 1 증가하고, 출력합니다. 

 

 

 

논리 연산자 (Logical Operator)

 

A B A&&B A||B
T
T
F
F
T
F
T
F
T
F
F
F
T
T
T
F

 

 

A&&B (AND 연산)

- 입력값이 하나라도 False이면 결과는 False

 

A||B (OR 연산)

- 입력값이 하나라도 True이면 결과는 True

 

 

Short Circuit evaluation

 

public class Short_circuit {
   public static void main(String[] args) {
     int i,j,k;
     boolean bool;
     i = j = k = 1;
     bool = (( ++i != 0 ) || ( ++j != 0 ) || ( ++k != 0));
     System.out.println( "i=" + i + ", j= " +j +", k= "+k+", bool= "+bool);
     i = j = k = -1;
     bool = (( ++i != 0 ) && ( ++j != 0 ) && ( ++k != 0));
     System.out.println( "i=" + i + ", j= " +j +", k= "+k+", bool= "+bool);
 } 
}

 

결과

i=2, j= 1, k= 1, bool= true
i=0, j= -1, k= -1, bool= false

 

 

 

할당(대입) 연산자(Assignment Operator)

 

할당 연산자라고도 하며 대입 연산자라고도 합니다. 

오퍼레이터(operator)의 위치를 바꿔서 중복성을 배제한 것입니다. 

 

  연산자 의미
=
+=
-=
*=
/=
%=
x=2
x+=4
y-=6
p*=5
n/=10
n%=10
x=2
x=x+4
y=y-6
p=p*5
n=n/10
n=n%10

 

public class assign{ 
    public static void main(String[] args) { 
        int num= 100; 
        System.out.println(num); 
        num +=10; 
        System.out.println(num); 
        num -=5; 
        System.out.println(num); 
        num *=5; 
        System.out.println(num); 
        num /=3; 
        System.out.println(num); 
        num %=2; 
        System.out.println(num); 
} }

 

결과:

100
110
105
525
175
1

'프로그래밍 언어론 > JAVA 기초' 카테고리의 다른 글

JAVA Online compiler  (16) 2022.08.27
For each  (0) 2022.08.22
class 와 method 정의  (22) 2022.08.14
기본형 데이터 형식, 참조형 데이터 형식  (33) 2022.05.29
Cast 연산자와 연산  (21) 2022.05.22