본문 바로가기

카테고리 없음

연산자 실습1

1.산술연산자 (arithmetic operator)

package p01.basic;

// +, -, *, /, % : 산술연산자 (arithmetic operator) 
public class ArithemticOperatorEx {

	public static void main(String[] args) {
		int a1 = 10;
		int a2 = 3;
		int result;
		double dresult;
		
		result = a1 + a2;
		System.out.println("result = " + result);
		
		result = a1 - a2;
		System.out.println("result = " + result);
		
		result = a1 * a2;
		System.out.println("result = " + result);
		
		result = a1 / a2;   // / : 몫을 가져옴
		System.out.println("result = " + result);
		 
		result = a1 % a2;   // % : 나머지를 가져옴
		System.out.println("result = " + result);

		
		// a1를 double로 자동 형변환시킴
		dresult = a1 / (double)a2;
//		dresult = (double) a1 / a2;  => 이렇게 써도 됨
		System.out.println("dresult = " + dresult);
	}

}

 

  1. 먼저 int a1에 10이라는 값을 넣어주고, int a2에는 3이라는 값을 넣어준다.
  2. int result라는 변수를 만들어주고 result에 연산식을 넣어준다 Ex) result = a1 + a2
  3. 그 다음 system.out.println()을 이용하여 결과값을 나타낸다.

위에 코딩을 Console창에 나타낸 것이다. (첫번째는 +, 두번째는 -, 세번째는 *(곱하기), 네번째는 /(나누기), 다섯번째는 %(나눈 다음 나머지를 가져옴)



2. 할당 연산자(Assignment Operator )

package p01.basic;

//Assignment Operator (할당 연산자)
//1. =
//2. +=, -=, *=, /=, %=, ... => C language부터 사용된 표현방식

public class AssignmentOperatorEx {

	public static void main(String[] args) {
		int n1 = 10;
		
		System.out.println("n1 = " + n1);
		
//		n1 = n1 + 10;
		n1 += 10;    // => 이게 위에 있는거랑 같은 의미
		System.out.println("n1 = " + n1);
		
//		n1 = n1 - 10;
		n1 -= 10;
		System.out.println("n1 = " + n1);
		
//		n1 = n1 * 2;
		n1 *= 2;
		System.out.println("n1 = " + n1);
		
//		n1 = n1 / 3;
		n1 /= 3;
		System.out.println("n1 = " + n1);

	}

}

 

  1. 이번에는 int n1에 10이라는 값을 넣어준다
  2.  n1 += 10이라는 연산식을 써서 연산을 해준다 여기서 n1 += 10 이라는 코딩과 n1 = n1 +10이라는 코딩은 같은 의미의 코딩이다.
  3. 그 다음 system.out.println()을 이용하여 결과값을 나타낸다.

위 사진은 위에 코딩을 Console 창에 나타낸 것이다.



3. 논리 연산자(Logical Operator)

package p01.basic;

// Logical Operator(논리연산자)
// 1. && (AND)
// 2. || (OR)
// 3. !  (NOT)

public class LogixalOperatorEx {

	public static void main(String[] args) {
		int a1 = 10;
		int a2 = 20;
		int a3 = 20;
		int a4 = 0;
		boolean bResult;
		
		bResult = (a1 < a2) && (a2 == a3);
		System.out.println("bResult =" + bResult);
		bResult = (a1 < a2) || (a2 == a3);
		System.out.println("bResult =" + bResult);
		
		bResult = (a1 > a2) && (a2 == a3);
		System.out.println("bResult =" + bResult);
		bResult = (a1 > a2) || (a2 == a3);
		System.out.println("bResult =" + bResult);
		
		bResult = !(a1 > a2);
		System.out.println("bResult =" + bResult);
		
	}

}

 

  • 논리 연산자는 &&(AND), ||(OR), !(NOT)이 있다.
  • &&(AND)는 둘다 true이면 true의 값이 나온다.
  • ||(OR)은 둘 중 하나라도 true이면 true 값이 나온다.
  • !(NOT)는 true이면 false값이 false이면 true값이 나온다.
  • int a1에 10, int a2에 20, int a3에 20, int a4에 0이라는 값을 넣어준다.
  • 값을 비교하기위해 boolean을 사용한다.
  • 첫번째는 &&(AND)를 사용했기 때문에 a1이 a2보다 작고 a2와 a3가 같으면 true 값이 나온다. a1은 a2보다 작으니 true이고, a2와 a3는 같은 값이니 true이다. 따라서 true 값이 나온다.
  • 두번째는 ||(OR)을 사용했기 때문에 a1이 a2보다 작거나 a2와 a3가 같을 경우 둘 중 하나라도 맞을 경우 true 값이 나온다. a1은 a2보다 작으니 true이고, a2와 a3는 같은 값이니 true이다. 따라서 true 값이 나온다.
  • 세번째는 &&(AND)를 사용했고 a1이 a2보다 크고 a2와 a3가 같으면 true 값이 나온다. a1이 a2보다 작으니 false이고, a2와 a3는 같으니 true이다. 하지만 &&(AND)는 둘다 같아야 true임으로 false가 나온다.
  • 네번째는 ||(OR)을 사용했고 a1이 a2보다 크거나 a2와 a3가 같으면 true 값이 나온다.  a1이 a2보다 작으니 false이고, a2와 a3는 같으니 true이다. 하지만 ||(OR)은 둘 중 하나라도 true이면 true값이 나오기 때문에 true이다.
  • 다섯번째는 !(NOT)을 사용했는데 !(NOT)은 결과값을 바꿔주는 역할을 한다. a1은 a2보다 크다라는 값을 넣어줬고 false가 나와야하지만 !(NOT)을 썼기 때문에 그 반대인 true가 나오게 된다.
  • 위에 코딩을 실행하게 되면 아래 사진과 같은 결과가 나오게 된다.

위 사진은 위에 코딩의 결과를 Console 창에 나타낸 것이다.



4. 연산자 우선순위(Operator Precedence)

package p01.basic;

// Operator Precedence (연산자 우선순위)
// assignment operator인 = 을 기준으로 해서,
// 1. 오른쪽에 있는 수식을 계산할 때 왼쪽부터 오른쪽으로 계산
// 2. 왼쪽부터 오른쪽으로 계산할 때 연산순위가 높은 연산자가 먼저 연산 수행( *, /, %가 +, -보다 연산순위가 높아 먼저 수행)
// 3. 단, ()가 모든 연산자보다 우선순위가 제일 높음
// 4. 프로그래밍할 때 사용할 tip : 연산순위가 제일 높은 ()를 적극 활용하라

public class OperatorPrecedenceEx {

	public static void main(String[] args) {
		int result = 0;
		
		// 1) 5 - 2 => 3, 2) 3 + 3 => 6, 3) 6 - 6 => 0
		result = 5 - 2 + 3 -6;
		System.out.println("result = " + result);
		
		// 1) 4/2 => 2, 2) 8*4 => 32, 3) 5 + 2 => 7, 4) 7%3 => 1
		// 5) 3 - 2 + 32 -1인 상태에서 왼쪽부터 오른쪽으로 계산
		result = 3- (4/2) + (8*4) - (5+2)%3;
		System.out.println("result = " + result);

	}

}

 

  • 연산은 오른쪽에 있는 수식을 계산할 때 왼쪽부터 오른쪽으로 계산한다.
  • 왼쪽부터 오른쪽으로 계산할 때 연산순위가  높은 연산자가 먼저 연산을 한다. (*, /, %가 +, -보다 연산순위가 높다)
  • 하지만, ()가 있는 연산자는 모든 연산자보다 우선 순위가 제일 높다.

위 사진은 위에 코딩의 결과를 Console 창에 나타낸 것이다.



5. 비교 연산자(Relational Operator)

package p01.basic;

// Relational Operator(비교 연산자)
// 1. == (에: a == b : a와 b의 값이 같으면 true, 틀리면 false 가짐)
// 2. != (예: a != b : a와 b의 값이 틀리면 true, 같으면 false 가짐)
// 3. >, >=
//		 (예: a > b : a가 b보다 크면 true, 같거나 작으면 false 가짐)
//       (예: a >= b : a가 b보다 크거나 같으면 true, 작으면 false 가짐)
// 4. <, <=
//       (예: a < b : a가 b보다 작으면 true, 같거나 크면 false 가짐)
//       (예: a <= b : a가 b보다 작거나 같으면 true, 크면 false 가짐)
public class RelationalOperatorEx {

	public static void main(String[] args) {
		int a1 = 5;
		int a2 = 10;
		int a3 = 5;
		boolean bResult;
		
		System.out.println("a1 == a2 : " + (a1 == a2));
		System.out.println("a1 == a3 : " + (a1 == a3));
		
		bResult = (a1 == a2);
		System.out.println("bResult = " + bResult);
		bResult = (a1 == a3);
		System.out.println("bResult = " + bResult);
		
		System.out.println("a1 != a2 : " + (a1 != a2));
		System.out.println("a1 != a3 : " + (a1 != a3));
		
		System.out.println("a1 > a2 : " + (a1 > a2));
		System.out.println("a1 < a3 : " + (a1 < a3));
		
		System.out.println("a1 >= a2 : " + (a1 >= a2));
		System.out.println("a1 <= a3 : " + (a1 <= a3));
 
	}

}

 

  • 비교 연산자의 경우 ==, !=, >, >=, <, <= 가 있다.

위 사진은 위에 코딩의 결과를 Console 창에 나타낸 것이다.



6. 3항 연산자(Ternary Operator)

package p01.basic;

// Ternary Operator (3항 연산자) : 피연산자 갯수가 3개
// A ? B : C (연산자는 ?, : 2개이고 피연산자는 A, B, C 3개가 있는 경우)
// => 의미 : A가€ true이면 B를 실행하고, A가 false이면 C를 실행
public class TernaryOperatorEx {

	public static void main(String[] args) {
		int n1 = 5;
		int n2 = 10;
		int max;
		
		if (n1> n2) {
			max = n1;
		} else {
			max = n2;
		}
		
		max = (n1> n2) ? n1 : n2;
		System.out.println("max = " + max);
		
		int result;
		
		result = (n1> n2) ? (n1 + n2) : (n1 - n2);
		System.out.println("result = " + result);
	}

}

 

  • 3항 연산자는 피연산자 갯수가 3개를 의미한다.
  • 위에 코드 A ? B : C 인 경우 연산자는( ?, : ) 2개이고 피연산자는 A,B,C인 경우이다.
  • A ? B : C 의 의미는 A가 true이면 B를 실행하고, A가 false이면 C를 실행하라는 의미이다.

위 사진은 위에 코딩의 결과를 Console 창에 나타낸 것이다.



7. 단항 연산자(Unary Operator )

package p01.basic;

// Unary Operator (단항연산자)
// +, - : 피연산자 앞에 붙여 사용할 경우
// Binary Operator(이항연산자) : operand가 2개인 경우 (산술연산자: +, -, *, /)
public class UnaryOperatorEx {

	public static void main(String[] args) {
		int n1 = 20;
		int result;
		
		result = +n1;
		System.out.println("result = " + result);
		
		result = -n1;
		System.out.println("result = " + result);

	}

}

 

  • +나 -를 피연산자 앞에 사용할 경우 피연산자에 넣어준 값 앞에  출력되게 된다.
  • Ex) int n1= 20;이라 입력하고, int result;라고 입력해준 다음, result = +n1;이라고 입력해주면 아래와 같은 결과가 나온다.

위 사진은 위에 코딩의 결과를 Console 창에 나타낸 것이다.



오늘은 연산자 실습에서 산술 연산자, 할당 연산자, 논리 연산자, 연산자 우선순위, 비교 연산자, 3항 연산자, 단항 연산자에  대해 공부해보았고, 다음에는 연산자 실습2를 하여 연산자에 대해 더 공부하는 시간을 가져보도록 하겠습니다.

반응형