자바 연산자 예제 - jaba yeonsanja yeje

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

자바 연산자 예제 - jaba yeonsanja yeje

예제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

실행 결과

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

실행 결과

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

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

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

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

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

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

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

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

조건 연산자

조건식 ? 식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

실행 결과

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

실행 결과

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

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

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