No. 01

 

 

증감 연산자  ++  --


증감연산자는 변수 자신의 값을 1증가 시키거나 감소시킨다. 연산자가 피연산자 앞 또는 뒤에 붙는가에 따라서 값이 달라지므로 주의하여야 한다.



예제1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Operator {
 
    public static void main(String[] args) {
        //증감 연산자의 독립 사용
        
        int i = 1;
        
        i++; // i = i + 1;과 같다.
        System.out.println("i++의 결과 :"+i);
        
        i = 1;
        ++i; // i = i + 1;과 같다.
        System.out.println("++i의 결과 :"+i);
        
        i = 1;
        i--; // i = i - 1;과 같다.
        System.out.println("i--의 결과 :"+i);
        
        i = 1;
        i--; // i = i - 1;과 같다.
        System.out.println("--i의 결과 :"+i);        
                        
    }//main    
 
}//class
                              Colored By Color Scripter


실행 결과

i++의 결과 : 2

++i의 결과 : 2

i--의 결과 : 0

--i의 결과 : 0


위의 예제처럼 단독으로 증감 연산자를 사용시 연산자를 사용한 위치에 대한 결과의 차이가 없다.



◈ 예제2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Operator {
 
    public static void main(String[] args) {
        //증감 연산자의 독립 사용이 아닐 때
        
        int i = 1, j = 0;
        
        j = i++; // 연산 과정 : 1] j = i를 실행, 2] i를 1 증가 
        System.out.printf("j = i++의 결과 : i=%d, j=%d%n",i,j);
        
        i = 1;
        j = 0;
        j = ++i; // 연산 과정 : 1] i를 1증가, 2] j = i를 실행
        System.out.printf("j = ++i의 결과 : i=%d, j=%d%n",i,j);
        
        i = 1;
        j = 0;
        j = i--; // 연산 과정 : 1] j = i를 실행, 2] i를 1 감소 
        System.out.printf("j = i--의 결과 : i=%d, j=%d%n",i,j);
        
        i = 1;
        j = 0;
        j = --i; // 연산 과정 : 1] i를 1감소, 2] j = i를 실행
        System.out.printf("j = --i의 결과 : i=%d, j=%d%n",i,j);        
                        
    }//main    
 
}//class
                                                     Colored By Color Scripter


실행 결과

j = i++의 결과 : i=2, j=1

j = ++i의 결과 : i=2, j=2

j = i--의 결과 : i=0, j=1

j = --i의 결과 : i=0, j=0


· 증감 연산자가 단독으로 사용되지 않은 경우 연산자의 위치에 따른 결과는 다르다. 그러므로 사용시 위치에 주의해서 사용해야 한다.

· 뒤에 사용할 때는 앞의 식을 먼저 실행시킨후 자신의 값을 증가시키거나 감소시킨다.

· 앞에 사용할 때는 자신의 값을 증가시키거나 감소시킨후 식을 계산한다.




No. 02

 

 

조건 연산자  ? :


조건 연산자는 세 개의 피연산자로 구성되어 삼항 연산자라고도 한다. 


조건 연산자

조건식 ? 식1 : 식2

  • 조건식이 참(true)일 때 결과는 식1의 값이 된다.
  • 조건식이 거짓(false)일 때 결과는 식2의 값이 된다.
  • 조건식을 괄호()로 둘러싸면 가독성을 높일 수 있지만 필수는 아니다.


◈ 예제1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Operator {
 
    public static void main(String[] args) {
        //조건 연산자  ? :
        
        int a = 10, b = 20;
        int result;
        
        // 1] 변수를 사용하여 저장
        result = (a>b)? (a-b) : (b-a);        
        System.out.println("1] 두 수의 차이 : "+result);
        
        // 2] 변수를 사용하지 않고 바로 출력
        System.out.println("2] 두 수의 차이 : "+ ((a>b)? (a-b) : (b-a)));        
        
    }//main    
 
}//class
                                                               Colored By Color Scripter


실행 결과

1] 두 수의 차이 : 10

2] 두 수의 차이 : 10


변수를 사용하여 저장할 수도 있고, 다른 연산과 바찬가지로 바로 print문 안에 사용하여 결과를 출력할 수도 있다.

두 수의 차이를 구하는 것이기 때문에 a에서 바로 b를 빼버리면 b가 클 경우 '-'값이 나오기 때문에 조건 연산자로 차이값만을 구할 수 있도록 하였다.

a>b보다 크다는 조건식이 참이면 a에서 b를 바로 빼고, 거짓이면 b에서 a를 빼서 차이값을 구한다.



◈ 예제2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.Scanner;
 
public class Operator {
 
    public static void main(String[] args) {
        //조건 연산자  ? :
        
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("알파벳인지 판단할 문자를 입력하세요.");
        String strC = scanner.nextLine();
        char c = strC.charAt(0);
        System.out.println((('a'<=c && c<='z') || ('A'<=c && c<='Z'))? "입력한 문자는 알파벳이다.": "입력한 문자는 알파벳이 아니다.");
        
    }//main    
 
}//class
                                                                                                                              Colored By Color Scripter


실행 결과

알파벳인지 판단할 문자를 입력하세요.

입력한 문자는 알파벳이 아니다.


조건식에 따른 결과로 수식뿐만 아니라 문자열도 나오게 할 수 있다.




'JAVA' 카테고리의 다른 글

[Java 17] 조건문 - if, switch  (0) 2017.11.27
[Java 15] 논리 연산자, 비트 연산자, 쉬프트 연산자  (0) 2017.11.25
[Java 14] 비교 연산자  (0) 2017.11.23
[Java 13] 산술 연산자  (0) 2017.11.22
[Java 12] 연산자란?  (0) 2017.11.21

+ Recent posts