2010. 8. 6. 19:50 android
[06-D4] 연산자(Operator)
[06-D4] 연산자(Operator)
[01] 연산자(operator)
1. 산술(수치) 연산자 : +, -, *, /, %
- 정수/정수 = 정수
- float n = 0.0f; f를 제거하면 double 8바이트가 됩니다.
>>>>> Arithmetic.java
/*
컴파일 및 실행:
javac Arithmetic.java
java Arithmetic
*/
public class Arithmetic
{
public static void main(String args[])
{
int i = 20; // 정수, 4 Byte
int j = 12; // 정수, 4 Byte
int a = i + j; // a = 20 + 12; --> 32
int b = i - j; // b = 20 - 12; --> 8
int c = i * j; // c = 20 * 12; --> 240
int d = i / j; // d = 20 / 12; --> 1, 정수/정수 = 정수
int e = i % j; // e = 20 % 12; --> 8
System.out.println("i : " + i + "j : " + j);
System.out.println("덧셈 결과 : " + a);
System.out.println("뺄셈 결과 : " + b);
System.out.println("곱셈 결과 : " + c);
System.out.println("나눗셈 결과 : " + d);
System.out.println("나머지 결과 : " + e);
System.out.println("");
System.out.println("정수/정수의 결과:" + (i / j));
System.out.println("(float)정수/정수의 결과:" + ((float)i / j));
int m = 10 / 0;
}
}
2. 대입 연산자 : =
- 좌변은 상수값이 아니라 기억장소가 와야합니다.
ⓐ a = i + j;
ⓑ b = 10 + 20;
ⓒ 100 = i + 10; //ERROR
3. 연산후대입 연산자 : +=, -=, *=, /=, %=
- 처리속도 향상
>>>>> Operator.java
/*
컴파일 및 실행:
javac Operator.java
java Operator
*/
public class Operator
{
public static void main(String[] args)
{
int i = 10; // 정수, 4 byte
int j = 20; // 정수, 4 Byte
i += j; // i = i + j;
System.out.println("i += j: " + i); // i = 30
i -= j; // i = i - j;
System.out.println("i -= j: " + i); //10
}
}
4. 증가/감소 연산자
- ++: 1씩 증가 시킵니다.
- --: 1씩 감소 합니다.
- 알아보기 쉽게 코딩하는 것이 필요합니다.
>>>>> IncDec.java
/*
컴파일 및 실행:
javac IncDec.java
java IncDec
*/
public class IncDec
{
public static void main(String[] args)
{
long i = 0; // 정수, 8 byte
long hap = 0; // 정수, 8 byte
// ⓐ 전위 연산자
// hap = ++i;
//--------------
// i = i + 1;
// hap = i;
// ⓑ 후위 연산자
// hap = i++;
//--------------
// hap = i;
// i = i + 1;
// ⓒ 권장 아님, 디버깅하기가 어려운 코드,
// 논리적 에러 발생 코드가 되기 쉬움,
// 개발 및 유지보수 시간의 증가
// hap = ++hap + ++i;
// ⓓ
// --i; // i--, ++i;
// i = i - 1;
System.out.println("hap: " + hap + " i: " + i);
}
}
- 정리
int i = 10;
int j = 0;
++i; //1)
j = i;
i++; //2)
j = i;
j = ++i; //3)
j = i++; //4)
5. 관계(비교) 연산자 : <, <=, >=, >, ==, !=, instanceof
>>>>> Compare.java
/*
컴파일 및 실행:
javac Compare.java
java Compare
*/
public class Compare
{
public static void main(String args[])
{
int i = 5;
int j = 10;
int k = 15;
System.out.println(" 5 == 10 : " + (i == j)); // 같은 값인지 비교, false
System.out.println(" 5 != 15 : " + (i != k)); // 다른 값인지 비교, true
System.out.println("10 < 15 : " + (j < k));
System.out.println("15 > 5 : " + (k > i));
System.out.println(" 5 <= 15 : " + (i <= k));
System.out.println(" 5 >= 10 : " + (i >= j));
//연산 순서: 산술 연산자 --> 관계 연산자
System.out.println("(10 + 5 < 20 + 10) : " + (10 + 5 < 20 + 10));
// System.out.println("((10 + 5) < (20 + 10)) : " + ((10 + 5) < (20 + 10)));
}
}
6. 비트연산자(2진수 연산)
- byte 0 ~ 255까지 출력하기
- >>: 지정된 수가 양수이면 0, 음수이면 1로 채워집니다., 2로 나눈 결과와 같습니다.
- <<: 무조건 0으로 채워집니다., 2로 곱합 결과와 같습니다.
- >>>: 무조건 0으로 채워서 양수 처리합니다.
>>>>> Bitwise.java
class Bitwise
{
public static void main(String args[])
{
int a = 2;
int b = 5;
int c = a | b; //2진수 bit or
// ....8421
// 00000010
//+00000101
//---------
// 00000111--> 7
int d = a & b; //and
// 00000010
//+00000101
//---------
// 00000000--> 0
int e = a ^ b; //Exclusive or
// 00000010
//+00000101
//---------
// 00000111--> 7
int i; int j;
i = a << 2; //좌 shift 연산, 2를 2번 곱합
// ....8421
// 00000010
// 00001000 --> 8
j = b >> 2; //우 shift 연산. 2로 2번 나눔
// ....8421
// 00000101
// 00000001 --> 1
System.out.println(" a = " + a);
System.out.println(" b = " + b);
System.out.println(" a|b = " + c);
System.out.println(" a&b = " + d);
System.out.println(" a^b = " + e);
System.out.println(" a<<2 = " + i);
System.out.println(" b>>2 = " + j);
}
}
7. 논리연산자(조건 연산자, Short Circuit)
- 조건문과 함께 많이 사용됨
- &&: 양쪽의 조건이 전부 맞아야 참입니다.
- ||: 어느 한쪽만 참이면 참입니다.
- 제어문에서 조건 명시에 많이 사용됨.
if ((kuk < 40) || (eng < 40)){ .....
if ((kuk >= 90) && (eng >= 90)){ .....
'android' 카테고리의 다른 글
[04-D3] 기본 편집기 설치, 컴파일, 자바 프로그램의 구조 (0) | 2010.08.06 |
---|---|
[03-D3] 자 바 언어의 이해, 자바 개발 환경 설치하기, Ubuntu 10.04 개발 환경 설정 (0) | 2010.08.06 |
[02-D2] Linux 개론, Ubuntu Linux 기본 명령어 (0) | 2010.08.06 |
[01-D1] VMWare 7.1, Ubuntu 10.04설치 (0) | 2010.08.06 |