종류: +
, -
, *
, /
, %
(나머지)
public class Arith_Test{
public static void main(String args[]){
double answer;
answer = 3+21/5;
System.out.println(answer);
answer=(3+21)/5;
System.out.println(answer);
answer=4+((15-7)/4);
System.out.println(answer);
answer=13/3+5*2;
System.out.println(answer);
answer=5.5%2.0;
System.out.println(answer);
}
피연산자가 정수형이어야만 하는 C, C++과 달리 실수형도 가능하다. - 9*3 일 때 9와 3을 피연산자라고 한다.
종류: ==
, >
, <
, >=
(크거나 같다), <=
(작거나 같다), !=
(같지 않다)
public class Relation_Test{
public static void main(String args[]){
System.out.println(3==4); //false
System.out.println(3!=4); //true
System.out.println(3>4); //false
System.out.println(3<5); //true
System.out.println(3>=3); //ture
System.out.println(3<=3); //true
}
}
종류
&
(and): 둘의 값이 모두 참이어야 'true' 값이 나온다.
&&
(and): 둘의 값이 모두 참이어야 'true' 값이 나온다,
앞의 값이 참이 나올 경우 뒤의 값을 수행하지 않고 false로 반환한다.
|
(or): 둘 중에 하나만 참이어도 'true' 값이 나온다.
||
(or): 둘 중에 하나만 참이어도 'true' 값이 나온다, 앞의 값이 참인 경우 뒤의 값을 수행하지 않고 true로 반환한다.
!
(not): 앞의 값이 참인 경우 거짓으로 반환한다.
public class Logical_Test{
public static void main(String args[]){
int a=10;
System.out.println((a=20)==20); //true
//System.out.println(!a); //a(변수)의 값은 거짓이 될 수 없기 때문에 오류가 발생한다.
boolean power=false; //power를 false라고 지정
System.out.println(power); //false
System.out.println(!power); //true
power=!power; //power를 true로 변환
System.out.println(!power); //true
int c =10;
System.out.println((1<2)||(1>(c=20))); //true
System.out.println((1<2)&&(1>(c=20))); //false
}
}
&&
, ||
는 수행속도가 &
, |
에 비해 빠르고 효율성있다.종류
++
++a(전위연산자): 먼저 a의 값을 1증가시키고, 수식에 적용한다.
a++(후위연산자): 수식에 적용한 후 , 나중에 변수 a의 증가시킨다.
--
--a(전위연산자): 먼저 변수 a값을 1감소시키고, 수식에 적용한다.
a--(후위연산자): 수식에 적용한 후 나중에 변수 a값을 1 감소시킨다.
public class plus{
public static void main(String args[]){
int a=10;
System.out.println(a++); //10
System.out.println(a); //11
int b=10;
System.out.println(++b); //11
System.out.println(b); //11
}
}
&
: 두 비트가 모두 1이면 1, 하나라도 0이면 0
|
: 두 비트가 모두 0이면 0, 하나라도 1이면 1
^
: 두 비트가 서로 다르면 1, 같으면 0
~
: 비트 반전
public class b{
public static void main(String args[]){
int a=3;
int b=5;
System.out.println(a&b); //1
System.out.println(a|b); //7
System.out.println(a^b); //6
System.out.println(~a); //-4
System.out.println(~b); //-6
}
}
2진수로 바꿨을 때
>>
: 원하는 비트 수 만큼 왼쪽으로 움직인다. (2배씩 줄어드는 효과)
<<
: 원하는 비트 수 만큼 오른쪽으로 움직인다. (2배씩 늘어나는 효과)
>>>
: 원하는 비트 수 만큼 왼쪽으로 움직인다.(부호에 상관없이 왼쪽 비트를 0으로 채운다.)
public class Shift{
public static void main(String args[]){
int a=16;
int b=2;
System.out.println(a>>b); //4
System.out.println(a<<b); //64
System.out.println(a>>>b); //4 (양수로 변환되어서 나옴)
사용하는 이유: 수행속도가 빠르기 때문이다.
=
:
a=b //b를 a에 대입
+=
:
a+=b //a=a+b a+b를 a에 대입
-=
:
a-=b //a=a-b a-b를 a에 대입
*=
:
a*=b //a=a*b a*b를 a에 대입
/=
:
a/=b //a=a/b a/b를 a에 대입
%=
:
a%=b //a=a%b a%b를 a에 대입
if else를 축약시켜 사용하는 것
public class If1{
public static void main(String args[]){
Scanner scan=new Scanner(System.in);
int a=2;
int b=3;
int c;
c=(a>b) ? a : b;
System.out.println(c); //값=3
}
}
형식: 조건 ? 처리1(참) : 처리2(거짓)
단항연산자
이항연산자
삼항연산자
대입연산자