[연산자 (Operator)]
데이터를 가공 및 처리를 하기 위해
1. 산술연산자
단항연산자 : -a, -1*a 서로 같은 연산 결과
이항연산자 : a+b
삼항연산자 : (조건) ? (참) : (거짓)
2. 관계(비교)연산자
<, >, <=, >=, == (서로같다), != (같지않다)
3. 증감연산자
++, --
4. 논리연산자
참인지 거짓인지를 판단해서 처리할때
&& and, 논리곱, 그리고
0 0 0
1 0 0
0 1 0
1 1 1
|| or, 논리합, 또는
0 0 0
1 0 1
0 1 1
1 1 1
! Not 연산자
!(5<10)
* 연산의 우선순위
- 최우선연산자 : ()
- 산술->관계->논리
- 대입연산자 : = 맨마지막에 연산
5. shift연산자
6. 삼항연산자
(조건식) ? (참) : (거짓) ;
파일명 : TestOperator.java
public class TestOperator{
public static void main(String[] args){
//산술연산자
/*
int p=10,q=20;
System.out.println(p+"+"+q+"="+(p+q)); //10+20=30
System.out.println(p+"-"+q+"="+(p-q));
System.out.println(p+"*"+q+"="+(p*q));
System.out.println(p+"/"+q+"="+(p/q));//몫연산자
System.out.println(p+"%"+q+"="+(p%q)); //나머지연산자
System.out.println(10/3); //3
System.out.println(10%3); //1
System.out.println(3/10); //0
System.out.println(3%10); //3
//나머지연산자에서 피젯수값이 더 크면
//나누고자 하는 대상값이 그대로 결과가 된다.
//(값%2) 나올수 있는 나머지 값의 종류 : 0 1
//boolean flag=true; boolean flag=1; 의미가 동일
//boolean flag=false; boolean flag=0; 의미가 동일
//자바에서는 0만 거짓이고 나머지는 모두 참
//(값%3) 0 1 2
//(값%45) 45종류의 나머지 나온다. (0 1 2 ... 43 44)
int r=-p; //-1*p 단항연산자
System.out.println(r);
*/
/*
//관계(비교) 연산자
//비교연산자는 boolean값으로 반환된다
System.out.println(10<20);
System.out.println(10>20);
System.out.println(10<=20);
System.out.println(10>=20);
System.out.println(10<=10);
System.out.println(10==20); //서로같다
System.out.println(10!=20); //서로 같지 않다.
//문) 4가 짝수인지 확인
//짝수의 정의 : 2로 나누어서 나머지가 0
System.out.println((4%2)==0);
*/
//해당년도가 윤년인지?
//1)윤년? 2월29일 4년마다 한번씩
int year=2012;
System.out.println(year%4==0);
//2)100년마다 한번씩은 윤년이 아니다
System.out.println((year%4==0)&&(year%100!=0));
//3)무조건 400년마다 한번씩은 윤년
System.out.println(((year%4==0)&&(year%100!=0))||(year%400==0));
/*
//증감연산자
int p=10;
p=p+1;
System.out.println("p=" + p); //p=11
p+=1; //p=p+1
System.out.println("p=" + p); //p=12
p++; //p=p+1
System.out.println("p=" + p); //p=13
++p;//p=p+1
System.out.println("p=" + p); //p=14
int q=10;
q=q-1;
System.out.println("q=" + q); //9
q-=1;
System.out.println("q=" + q); //8
q--;
System.out.println("q=" + q); //7
--q;
System.out.println("q=" + q); //6
*/
/*
//증감연산자는 독립적으로 쓰이면 크게 문제 되지 않지만
//대입연산자와 함께 사용할때에는 선증가, 후증가인지 매우 중요
int a=10,b=20,c,d;
c=++a; //a=a+1 -> c=a
d=b--; //d=b -> b=b-1
//a=11 b=19 c=11 d=20
System.out.println("a=" + a);
System.out.println("b=" + b);
System.out.println("c=" + c);
System.out.println("d=" + d);
int x=4,y=5,z;
z=++x*y++; //z=--x*y--;
//x=x+1
//z=x*y
//y=y+1
System.out.println(x);
System.out.println(y);
System.out.println(z);
*/
//논리연산자
int p=10;
//p값이 짝수이면서 5의배수인지 확인
//조건1) 짝수인지? 2로 나누어서 나머지가 0
//조건2) 5의배수? 5로 나누어서 나머지가 0
System.out.println((p%2==0) && (p%5==0));
//(10%2==0) && (10%5==0)
//( 0 ==0) && ( 0 ==0)
//( true ) ( true )
//( true )
//3의 배수이거나 10의 배수인지 확인
int q=15;
System.out.println((q%3==0) || (q%10==0));
System.out.println(!((q%3==0) || (q%10==0)));//Not연산자
//(15%3==0) || (15%10==0)
//( 0 ==0) || ( 5 ==0)
//( true ) || ( false )
//( true )
}
}
파일명 : TestShift.java
public class TestShift{
public static void main(String[] args){
//shift연산자
/*
비트단위의 연산
1byte는 8bit로 구성 (bit는 0 과 1로 표현)
A 65 2진수-> 0 1 0 0 0 0 0 1
128 64 32 16 8 4 2 1 <- 8421코드
35 2진수-> 1 0 0 0 1 1
*/
//right shift >>
//대상값/2^n
System.out.println(16>>3);
//left shift <<
//대상값*2^n
System.out.println(16<<3);
//비트연산자 : ~(1의보수) |(비트합) &(비트곱)
System.out.println(~9); //보수연산자
System.out.println(2^3); //제곱승
}
}
파일명 : TestThree.java
public class TestThree{
public static void main(String[] args){
//삼항연산자
//(조건) ? (참) : (거짓)
/*
int su=5;
String str="";
str = (su%2==0) ? "짝수" : "홀수";
//(5%2==0)? : "홀수"
System.out.println(str);
*/
//문)p값과 q값중에서 큰수 출력
/*
int p=10,q=20;
System.out.println( (p<q) ? q : p );
// 10<20? 20
*/
//문)p, q, r중에서 큰수 출력
int p=10,q=20,r=15;
int max;
max=(p<q) ? q : p; //max=(10<20)? 20
max=(max<r) ? r : max; //max=(20<15)? : 20
System.out.println("최대값 = "+max);
}
}
'..열심히 공부하세.. > JAVA 문법' 카테고리의 다른 글
[07] 반복문 (for) (0) | 2012.04.19 |
---|---|
[06] 조건문 (if문, switch~case문) (0) | 2012.04.17 |
[04] 문자형 (char, String) (0) | 2012.04.16 |
[03] 자바의 식별자 및 기본 자료형(정수형,실수형) (0) | 2012.04.13 |
[02] 자바프로그래밍 개발을 위한 환경구축 (0) | 2012.04.13 |