day02 - 2

JTH·2023년 1월 19일
0

gb_jth

목록 보기
3/56
post-thumbnail

4. 연산자

4-1. 연산자

  • 프로그램에서 연산을 수행하기 위하여 사용되는 특수기호들

4-2 대입연산자

  • 변수에 숫자나 문자열 등의 자료를 입력하거나 연산 결과를 다른 변수에 할당한다

4-3.사칙 연산자

  • 더하기(+), 빼기(-), 곱하기(*), 나눗셈의 몫(/), 나머지(%)
  • 10 나누기 3을 계산할 때, 수학에서는 몫이 3, 나머지 1이라고 계산이 된다.
  • 10 / 3 -> 나눗셈의 몫만을 취하여 결과값은 "3"이다.
  • 10 % 3 -> 나눗셈의 나머지만을 취하여 결과값은 1이 된다.
  • 모든 수는 0으로 나눌 수가 없다.
package operator;

public class Main01 {

	public static void main(String[] args) {
		int num1 = 12;
		int num2 = 8;
		
		int result1 = num1 + num2;
		// -
		int result2 = num1 - num2;
		// *
		int result3 = num1 * num2;
		// /
		int result4 = num1 / num2;
		// %
		int result5 = num1 % num2;
		// 12시 45분 까지..
		
		
		System.out.println("12 + 8 = " + result1);
		System.out.println("12 - 8 = " + result2);
		System.out.println("12 * 8 = " + result3);
		System.out.println("12 / 8 = " + result4);
		System.out.println("12 % 8 = " + result5);
		
		System.out.println("___________________");
		
		// 0으로 나누기
		int num = 100;
		int zero = 0;
		int result6 = num / zero;
		
		// 연산불가 -> 에러
		System.out.println("100 / 0 =" + result6);
	}

}

4-4 단항 연산자

  • 변수에 대한 연산 결과를 다시 자기 자신에게 적용하는 경우 사용

  • 다시 자기 자신에게 대입하고자 하는 경우의 약식 표현이다.

    int x = 100;
    x = x + 5;

    int x = 100;
    x += 5;

  • 단항 연산자는 모든 사칙 연산자에 표현 가능하다.
    +=, -=, *=, /=, %=

package operator;

public class Main02 {

	public static void main(String[] args) {
		int source = 100;
		
		source += 100;  //source = source + 100; 200
		source -= 50;	//source = source - 50;  150
		source *= 2;	//source = source * 2;   300
		source /= 100;	//source = source / 100; 3
		source %= 2;	//source = source % 2;   1
		
		
		System.out.println(source);
		
		
		/*  하나하나 따로 계산이 들어가게 계산하는것이 아닌 한번에 처리하는거였다...
		int source1 = source += 100;  // 200
		int source2 = source -= 50;	//50
		int source3 = source *= 2;	//200
		int source4 = source /= 100;	//1
		int source5 = source %= 2;	//0
		*/
		
		// System.out.println(source1);
	}

}

4-5 증감 연산자

다른걸 떠나서 증감 연산자의 위치로 변하는 것들이 제일 신기했다.

  • 특정 변수에 저장되어 있는 값을 1씩 증가, 감소 시킬 경우 사용

  • 단항 연산자로 표현할 수 있는 식에서 계산 대상 값이 1인 경우, 덧셈과 뺄셈에 대해서는 다시 한번 축약할 수 있다.

  • 덧셈의 경우

    x = x + 1;
    x += 1; //단항
    x++; //증감연산자
    ++x; // 증감연산자

  • 뺄셈의 경우

    x = x - 1;
    x -= 1;
    x--; //증감연산자
    --x; //증감연산자

  • x++와 ++x의 차이점
    -> 증감 연산자는 그 자체가 다른 연산식의 피연산자로 사용될 수 있다.
    이때, 증감연산자의 표시 위치에 따라 결과가 서로 다르게 적용된다.

  • x++ 경우
    -> 증감 연산자가 뒤에 표시되는 경우, 현재 x의 값을 먼저 수식에 적용하고, 나중에 x에 대한 1증가처리를 한다.

    int a = 100;
    int x = 1;
    int y = a + x++;
    sout(y); // y = 101, x = 2로 변화 수식에 먼저 적용하고 나중에 증가처리를 한 결과.

  • --x의 경우
    -> 증감 연산자가 앞에 표시된 경우, 현재 x의 값을 1 증가 시킨후 그 결과를 수식에 적용한다.

    int a = 100;
    int x = 1;
    int y = a + ++x;
    sout(y); // y = 102, x = 2

package operator;

public class Main04 {

	public static void main(String[] args) {
		int a1 = 100;
		int x1 = 1;
		int y1 = a1 + x1++;
		System.out.println("y1 : " + y1);
		System.out.println("x1 : " + x1);
		
		int a2 = 100;
		int x2 = 1;
		int y2 = a2 + ++x2;
		System.out.println("y2 : " + y2);
		System.out.println("x2 : " + x2);
	}

}

4-6 비교 연산자

수학 굉장하다

  • 두 개의 변수값 간의 관계를 비교하여 참(true)이나 거짓(false)의 결과를 반환한다.
    같다 ==
    다르다 != //는 부정의 의미로 사용됨
    초과 >
    이상 >=
    미만 <
    이하 <=

  • 주어진 식이 참인지 거짓인지 판별 가능하므로, 연산 결과는 boolean 값으로 생성된다.

    int x = 100;
    int y = 1;
    boolean r = x 비교연산자 y;

package operator;

public class Main05 {

	public static void main(String[] args) {
		int num1 = 123;
		int num2 = 456;
		
		// 비교연산에 대한 결과는 boolean
		boolean result1 = num1 == num2;
		System.out.println(result1);
		// !=
		boolean result2 = num1 != num2;
		System.out.println(result2);
		// >
		boolean result3 = num1 > num2;
		System.out.println(result3);
		// <=
		boolean result4 = num1 <= num2;
		System.out.println(result4);
		
	}

}

4-7 논리 연산자!

  • 좌변과 우변을 논리 연산하고, 참일때는 true, 거짓일때는 false 값을 반환한다.

  • 두개 이상의 비교 연산자의 결과나 boolean 값에 대해 추가로 "AND" 나 "OR" 연산을 수행하여 결과를 얻는다.

  • AND의 의미를 갖는 &&
    -> "&&" 연산자 두 개의 boolean 값을 비교하여 모두 true인 경우에만 결과값이 true

  • OR 의 의미를 갖는 ||
    -> ||연산자는 두개의 boolean값을 비교하여 둘중 하나라도 true인경우 결과값 true

package operator;

public class Main06 {

	public static void main(String[] args) {
		int a = 100;
		int b = 200;
		int x = 5;
		int y = 3;
		
		boolean result1 = a != b || a == b; // T
		System.out.println(result1);
		boolean result2 = a < b || x > y;	// T
		System.out.println(result2);
		boolean result3 = a < b || x < y;	// T
		System.out.println(result3);
		boolean result4 = a > b || x > y;	// T
		System.out.println(result4);
		boolean result5 = a > b || x < y;	// F
		System.out.println(result5);
		
		boolean result6 = a < b && x > y;	// T
		System.out.println(result6);
		
		System.out.println("--------------------------");
		
		boolean r1 = a >= b;	// F
		boolean r2 = x >= y;	// T
		boolean result7 = r1 && r2;
		boolean result8 = r1 || r2;
		System.out.println(result7);
		System.out.println(result8);
		System.out.println("-----------------------------");
		
		boolean success = true;
		boolean fail = !success;
		System.out.println(fail);
		
		
	}

}

예약어가.. 무지 많다..

알믄 좋겟지..

profile
//

0개의 댓글