코딩이란 무엇일까

[Java/자바] 연산자 (1) 본문

Java

[Java/자바] 연산자 (1)

둥구는 지굴다 2022. 9. 17. 17:09

안녕하세요 오늘은 Java에서 사용되는 연산자에 대해 알아보겠습니다. 

연산자 부분은 내용이 많은 관계로 한 포스팅에 다 담는 것은 불가능할 것 같아서 나누어서 담아보겠습니다.

연산자란?

우선 연산자란 무엇일까요? 

연산자는 말 그대로 

저희가 일상 생활에서 사용하는 더하기 빼기 곱셈 나누기와 같은 연산을 하는 문자입니다.

하지만 프로그래밍에서의 연산자는 수학적 연산자와는 조금은 다릅니다. 

연산자의 종류

연산자의 종류는 생각보다 다양합니다.

산술 연산자, 단항 연산자, 비교 연산자

논리 연산자, 쉬프트 연산자, 기타 연산자

이 외에도 다양한 연산자가 존재합니다.

연산자 순위

1.최우선 연산자 [ ], ( )
2.단항연산자 ! ~ + - ++
3.산술연산자 + - * / %
4.쉬프트 연산자 << >>
5.관계연산자 < , > , == ,≠
6.논리 연산자 && ,
7.삼항 연산자 (조건) ? 참:거짓
8.대입 연산자 =. += ,-=

연산자에는 우선순위가 존재합니다.

위에서부터 내림차순으로 최단산쉬관리삼대 이런 식으로 외워주시면 머리에 기억에 잘 남더라고요 ㅎㅎ

 

산술 연산자의 종류

자 그러면 본격적으로 산술 연산자에 대해 알아보겠습니다.

산술 연산자는 우리가 흔히 아는 사칙연산과 비슷합니다.

  • + ⇒더하기
  • - ⇒빼기
  • * ⇒곱하기
  • / ⇒나누기
  • % ⇒나머지

위와 같이 평소에 많이 쓰이는 연산자입니다.

% 는 조금 낯설 수도 있지만 나머지를 나타내 줍니다.

5%2를 하면 나머지인 1을 결과 값을 나타내는 산술 연산자입니다.

산술 연산자 예시

public class Opator {

	public static void main(String[] args) {
		int a=10;
		int b=3;
		double doubleB=3; //자동형변환
		System.out.println(a+b); //13
		System.out.println(a-b); //7
		System.out.println(a*b); //30
		System.out.println(a/b); //3
		System.out.println(a%b); //1
		
		System.out.println(a/doubleB);//정수나누기 실수는 실수 값이 나온다 3.3333333333
		System.out.println(a%doubleB); //1.0 
		System.out.println(a%doubleB); //1.0
	}

}
```

 

결과 값

산술연산자 결과 값 출력

단항 연산자

다음으로 알아볼 것은 단항 연산자입니다.

단항 연산자는 말 그대로 항이 1개인 연산자를 뜻합니다.

단항 연산자의 종류

  • 부호 연산자(+ , -)
  • 논리 부정 연산자(! )
  • 증감 연산자 ( ++ , -- )

증감 연산자

증감 연산자란 부호에 따라 변수의 값을 1 증가하거나 감소시킵니다.

ex) 1++ , 1-- , a++ , ++a,

증감 연산자의 사용방법

전위형 : ++변수명 , -- 변수명

후위형 : 변수명 ++, 변수명--

이름에서 알 수 있듯이 변수명 뒤에 연산자가 오냐 앞에 오냐에 따라 차이 점이 있습니다.

전위형과 후위형의 차이점

전위형은 변수의 값 증가가 먼저 이뤄지고 사용이 됩니다.

후위형은 변수의 값 사용 후 변수의 값이 증가합니다.

여기서 중요한 점은 변수가 사용이 되기 전 값이 증가하냐, 변수의 값이 사용된 뒤 값이 증가하냐의 차이입니다.

이렇게 말하니 도대체 언제 어떻게 사용하는지 잘 모르시겠죠? 예시 한번 보고 가겠습니다.

 

증감 연산자 예시

public class Operator_ch3 {

	public static void main(String[] args) {
		int a=1;
		System.out.println(a); // a의 값은 1이 나온다
		
		
		System.out.println(a++);// 후위형임으로 a의 값은 출력을 한 뒤 증가합니다. 따라서 결과 값은
        //1이 나오지만 a는 2로 증가하였습니다.
		
		System.out.println(++a); //전위형으로 증가를 하기 때문에 a의 값이 먼저 증가합니다.따라서
        //결과 값은 3이나옵니다.
		
	}

}

자 예시를 보면 확실히 이해가 가시나요?

주석은 달아놨지만 한번 더 설명하자면 a는 1로 변수에 값을 넣어주었습니다.

따라서 초기에 출력을 한번 해주면 1이 나오겠죠?

자 그런데 그다음 출력문에는 a++이라는 후위형 증감 연산자를 사용했습니다. 따라서 우선 a를 출력한 뒤 a를 증가시켜라 라는 의미를 갖습니다. 따라서 a는 2가 되지만 출력은 1이 되는 것이지요

그 다음 실행문을 보시면 ++a를 출력했습니다 아까 후위형으로 a를 증가시켜놨기 때문에 a는 2인 상태에서 한번 더 증가를 해 출력을 해보면 3이 출력되게 됩니다.

비교 연산자

비교 연산자는 변수를 비교할 때 사용합니다.

비교 연산자의 종류

종류 연산자 연산자 사용방법 설명
같다 == a==b a와b가 같으면 참
작다 < a<b a가 b보다 작으면 참
크다 > a>b a가 b보다 크면 참
작거나 같다 < = a≤b a가 b보다 작거나 같으면 참
크거나 같다 > = a≥b a가 b보다 크거나 같으면 참
같지 않다 ! = a≠b a와 b가 같지 않으면 참

비교 연산자의 특징은 비교 연산자를 사용하여 나오는 값은 항상 논리 값입니다.

이 말은 즉, true 혹은 false로만 값이 나온다는 것입니다.

추가적으로 문자열을 비교할 시에는

==과 같은 등가 비교 연산자를 사용하지 않습니다.

문자열을 비교할 때는  String클래스 안에 있는 메서드인 equals( )메소드를 사용합니다.

equals메소드 형태

변수명. equalse( 비교할 문자)

자세한 건 예시로 보여드리죠

비교 연산자 예시

public class Inequelity_sign_operator {

	public static void main(String[] args) {
		int a=10;
		int b=20;
		int c=30;
		
		System.out.println(a<b); //a가 b보다 작니? true
		System.out.println(a>b); //a가 b보다 크니? flase
		System.out.println(a+b<=c);//a+b가 c보다 작거나 같니? true
		System.out.println(a+b>=c);//a+b가 c보다 크거나 같니?
	}

}

결과 값

문자열 비교 및 다른 비교 연산자 예시

public class Equality_sign_operator {

	public static void main(String[] args) {
		double a =3.14;
		double b=5.15;
		System.out.println(a==b); //a와 b가 같니?
		System.out.println(a!=b); //a와 b가 다르니?
		
		String c1="할루롱";
		String c2="할루롱";
		System.out.println(c1=="할루롱"); //문자를 비교할때는 이런식으로 비교하지 않음
		System.out.println(c1.equals("할루롱")); //문자를 비교할 때는 .equals("")를 사용하여 비교함
		System.out.println(c1.equals("할룽"));
	}

}

문자열을 비교할 때는 위의 설명과 같이 equals( )메소드를 사용해 줍니다.

 

이상으로 오늘은

다양한 연산자 중에서도 산술 연산자와 단항 연산자에 대해 알아보았는데요

다음에는 더 다양한 연산자를 다루어보도록 하겠습니다.

이상으로 포스팅 마치겠습니다.!!

 

Comments