유난스런 개발 기록

[JAVA] Day-4 _ 연산자(operator) 본문

개념정리/JAVA

[JAVA] Day-4 _ 연산자(operator)

yourhwan 2023. 1. 11. 01:01

day-4

연산자(operator)


연산자(operator) 란? 

  • 연산자란 프로그램 문법 중 변수와 더불어 가장 기본이 되는 문법이다.
  • 크게 산술 연산, 비교 연산, 논리 연산 으로 나뉜다.
  • 이외에도 bit 연산자, 증감 연산자, 할당 연산자, 삼항 연산자 , 쉬프트 연산자 등이 있다. 

 

산술 연산자

산술 연산자는 사칙연산을 생각하면 된다.

+-*/%  가 있으며, 순서대로 더하기, 빼기, 곱하기, 나누기, 나머지 이다.-

-예제-

package my.day04.b.operator;

public class OperatorMain {

	public static void main(String[] args) {

		
		int n = 10;
        
		System.out.println("n+3 = " + (n+3)); 	// n+3 = 13
		System.out.println("n-3 = " + (n-3)); 	// n-3 = 7
		System.out.println("n*3 = " + (n*3)); 	// n*3 = 30
		System.out.println("n/3 = " + (n/3)); 	// n/3 = 3 정수/정수 = 정수(몫)
		System.out.println("(double)n/3 = " + ((double)n/3));	// (double)n/3 = 3.3333333333333335
		System.out.println("(float)n/3 = " + ((float)n/3));		// (float)n/3 = 3.3333333
		System.out.println("n%3 = " + (n%3)); 	// n%3 = 1	10을 3으로 나누었을 때의 나머지 1
		
		System.out.println("n<<3 = " + (n<<3)); // n<<3 = 80

 

증감 연산자

증감 연산자는 정수 타입의 변수 앞이나 에 위치하며, 변수의 값을 1 증가시키거나 1 감소시킬 때 사용한다.

변수 앞에 위치하면 전위 연산

변수 뒤에 위치하면 후위 연산이다.

프로그래밍을 하며 정말 많이 사용하고 보게 될 연산자니 꼭 기억하자.

-예제-

		int a = 7;
//		int b = 3;
//		또는	
		int a=7, b=3;
		System.out.println("a => " + a); // a => 7
		
//		a = a+1;
//		또는
		a++;
		System.out.println("a => " + a); // a => 8
		
		++a;
		System.out.println("a => " + a); // a => 9
		
		System.out.println("b => " + b); // b => 3
//		b = b-1;
//		또는
		b--;
		
		System.out.println("b => " + b); // b => 2
		
		--b;
		
		System.out.println("b => " + b); // b => 1

 

논리 연산자와  bit 연산자

논리 연산자는 비교 대상값이 boolean 타입에서 사용되어진다.

& (AND),   | (OR),   &&   ,   ||  을 사용한다. 두개씩 사용하면 처리 속도가 향상 된다.

&(앰퍼센드)   |(파이프 or 버티컬라인)   ^(꼬갈) 이렇게도 부른다.

또한

& | ^ 연산자는 연산 되어지는 대상이 정수일 때만 사용 가능하다.

-예제-

boolean bool = false;
System.out.println("bool : " + bool); // bool : false
/*
			 	수학에서는 T ∧ T ∧ F ==> F
			 	수학에서는 T ∧ T ∧ T ==> T

			 	수학에서는 T ∨ T ∨ F ==> T
			 	수학에서는 T ∨ T ∨ T ==> T
			 	수학에서는 F ∨ F ∨ F ==> F
*/

			int c=50, d=60, e=70;
			
			bool = (c > d) && (d < e) && (c == 3);
			//		false  && 스킵
			System.out.println("bool => " + bool); // bool => false
			
			bool = (c > d) || (d < e) || (c == 3);
			// 		false  ||  true	  || 스킵
			System.out.println("bool => " + bool); // bool => true
		     int i=1;i=1;	// i=1;
		     int j=i++;		// j=1; i++; i=>2
		     
		     if( (i > ++j) & (i++ == j) ) {
		      //  2 > 2		 j==>2 
		      //  false    &   2 == 2
		      //  false    &   true 	i==>3
		      //        false   
		    	 i = i+j;
		     }
		     
		     System.out.println("i="+i);  // i=3
		     
		     i=1;		//i=1;
		     j=i++;		//j==>1		i++;	i==>2
		     
		     if( (i > ++j) && (i++ == j) ) {
//		        2 > 2
//				false      &&  스킵
//		    	 	  false	
		    	 i = i+j;
		     }
		     
		     System.out.println("i="+i);  // i=2

할당 연산자

  +=,   =-,    *=,     /=,     %= 

위와 같은 것들이 있다.

쉽게 말하자면 연산 후 대입을 하는 것이다.

예시 코드를 보면 알기 쉽다.

			 int no = 1;
		     no += 3; // no = no + 3; 와 같은 것이다. 즉, no+3 하고 no에 no+3 값 넣어준다.
		     System.out.println("no=" + no); //no=4
		     
		     no -= 2;	//no = no - 2; 와 같은 것이다.
		     System.out.println("no=" + no); //no=2
		     
		     no *=5;	//no = no * 5; 와 같은 것이다.
		     System.out.println("no=" + no); //no=10
		     
		     no /=4;	//no = no / 4; 와 같은 것이다.
		     System.out.println("no=" + no); //no=2
		     
		     no %=3;	//no = no % 3; 와 같은 것이다.
		     System.out.println("no=" + no); //no=2

 

삼항 연산자

변수선언 = (조건식)?값1:값2;    의 모양으로 선언할 수 있다.

변수를 선언하고 나서 값을 부여하고자 할 때 사용되어지는데,

건식이 참 이라면 변수에 값1 을 대입해주고,

만약 조건식이 거짓 이라면 변수에 값2 를 대입해주는 것이다.

-예시-

int num1=50, num2=60;
int num3=(num1 > num2)?num1:num2;
//	false
//	num3= mum2;
System.out.println("num3 => " + num3); // num3 => 60