Java 의 사칙 연산(비교 연산자 equals)
사칙연산에는 더하기 빼기 곱하기 나누기가 있다.
그리고 더 추가해서 (증가식,감소식(둘을 합쳐서 증감식이라 부른다),나머지)가 있고
논리(boolean)을 위한 비교연산자( &&(and), or(||) )이 있다.
더하기 +
빼기 -
곱하기 *
나누기 /
나눈 나머지 %
증가식 ++ // 1씩 올라간다.
감소식 -- // 1씩 내려간다.
and && (두 식 모두 true여야 true) 그 반대로 하나만 false여도 false
or || (두 식 모두 false여야 false) 그 반대로 하나만 true여도 true
증감식에서 ++나 --가 어디에 붙는지에 따라 값이 달라질 수 있다.
ex)후위연산자로 대입을 먼저 하고 나중에 1을 더하는 식이다.
sum = i++;
ex)전위연산자로 먼저 1을 더하고 그 후에 대입을 하는 방식이다.
sum = ++i;
둘의 출력값이 달라질 수 있기 때문에 잘 생각하고 써야된다.
또 다른 증감식이 있는데 이것은 증가나 감소값을 정할 수 있다.
곱셈이나 나눗셈도 가능하다.
ex)
sum += i; //sum=sum+i 라고 해석하면 된다.
sum -= i; //위와 연산기호만 바뀌고 동일하다.
sum *= i; //위와 연산기호만 바뀌고 동일하다.
sum /= i; //위와 연산기호만 바뀌고 동일하다.
문자열 비교연산자
String 문자열의 비교는 equals 함수를 사용해야된다.
ex)equals 와 == 연산자 비교의 차이는 equals는 대상의 내용 자체를 비교한다면 ==연산자는 주소값을 비교하기 때문이다.
String a = "a";
String b = "a";
String c = new String("a");
이런 예제의 문제가 있다면
==의 연사자의 같은경우 a 와 b는 true가 나오지만 a 와 c , b 와 c 는 false가 나온다. 출력을 하면 다 a가 나오겠지만
주소값의 차이로 인해서 false가 나온다. 그래서 equals를 사용함으로써 클래스를 사용한 변수여도 값 자체의 비교를 하기 때문에
모두 true가 나온다.
기본식 - 변수에 equals를 쓰고 비교할 변수를 ()안에 넣어준다.
sysout(a.equals(b));
sysout(a.equals(c));