달력

12

« 2019/12 »

  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  


 

증감 연산자(increment and decrement operators)

·       변수에 저장되어 있는 값을 1씩 증가 혹은 감소시킬 때 사용하는 연산자입니다.

·       모든 수치 데이터 형식과 열거형식에서 사용합니다.

·       ++ 또는 -- 연산자가 변수 앞에 위치하느냐? 아니면 변수 뒤에 위치하느냐? 에 따라 값이 달라질 수 있으므로 증감연산자를 사용하실 때는 항상 주의하셔야 합니다.

 

 

증감 연산자 종류

피연산자가 단 하나뿐인 단항 연산자입니다.

연산자

의미

++

피연산자의 값을 1 증가

--

피연산자의 값을 1 감소

 

 

코드를 간결하게하고 속도를 향상시킬 수 있지만 이것이 오히려 가독성을 저해할 수 있으며, 피연산자의 위치에 따라 결과가 다르게 나올 수 있기 때문에 주의해야 합니다.

증감 연산자

설명

++a

선 증가, 후 연산 (먼저 증가하고 그 다음 연산)

a++

선 연산, 후 증가 (먼저 연산하고 그 다음 증가)

--a

선 감소, 후 연산 (먼저 감소하고 그 다음 연산)

a--

선 연산, 후 감소 (먼저 연산하고 그 다음 감소)

 

 

 

증감 연산자 prefix/postfix 기능

전위/후위  연산자에 따라 달라지는 result 값을 확인합니다.

후위 연산자의 증가 또는 감소한 값은 다음 라인 부터 적용됩니다.

연산자

연산자 기능

연산 과정

result

++(prefix)

·       피연산자의 값을 1 증가

 

n=7

result = ++n

 

·       선 증가, 후 연산 (먼저 증가하고 그 다음 연산)

++7 -> 8 -> result = 8

8

--(prefix)

·       피연산자의 값을 1 감소

 

n=7

result = --n

 

·       선 감소, 후 연산 (먼저 감소하고 그 다음 연산)

--7 -> 6 -> result = 6

6

(postfix)++

·       피연산자의 값을 1 증가

 

n=7

result = n++

 

·       선 연산, 후 증가 (먼저 연산하고 그 다음 증가)

result = 7 -> 7++ -> 8

7

(postfix)--

·       피연산자의 값을 1 감소

 

n=7

result = n--

 

·       선 연산, 후 감소 (먼저 연산하고 그 다음 감소)

result = 7 -> 7-- -> 6

7

 

 

 

증감 연산자 선행/후행 실행후 결과값 확인

증감연산자 후행에서는 증가/감소값이 해당 연산 수행문에서는 적용이 되지 않고

다음 문장 부터 적용(다음 연산 부터 적용)이 되게 됩니다. (주의)

 

Posted by codedragon codedragon

댓글을 달아 주세요

증감 연산자 선행/후행비교

   

   

소스코드

   

int main(void) {

int num1=10, num2=20;

int r1, r2;

//증가연산자

// printf("%d \n",++num1); // 결과는 11

// printf("%d \n",num1); // 결과는 11

//

// printf("%d \n",num2++); // 결과는 20

// printf("%d \n",num2); // 결과는 21

//감소연산자

printf("%d \n",--num1); // 결과는 9

printf("%d \n",num1); // 결과는 9

printf("%d \n",num2--); // 결과는 20

printf("%d \n",num2); // 결과는 19

return 0;

}


   

출력결과

증감연사자 선행/후행

   

   

감소연산자 선행/후행

 

'Development > C/C++' 카테고리의 다른 글

Ex09-관계 연산자  (0) 2015.03.13
관계연산자  (0) 2015.03.12
Ex08-증감 연산자 선행/후행비교  (0) 2015.03.11
Ex07-증감연산자 수행시 값 변화 주의  (0) 2015.03.10
Ex06-증감연산자의 단독 수행  (0) 2015.03.08
Ex05-복합 대입 연산자  (0) 2015.03.02
Posted by codedragon codedragon

댓글을 달아 주세요

증감 연산자 

   

   

소스코드

  1.  public class OperatorEx01 {
  2.         public static void main(String[] args){
  3.                  
  4.                 System.out.println("=========증가 연산자=========");
  5.                 int i1=5;
  6.                 int i2=5;
  7.                 System.out.println("증가연산자 선행 : " + (++i1) );
  8.                 System.out.println("i1 : " + i1);
  9.                                  
  10.                 System.out.println("증가연산자 후행 : "+ (i2++) );
  11.                 System.out.println("i2 : " + i2);
  12.                  
  13.                 System.out.println("\n=========감소 연산자=========");
  14.                 System.out.println("");
  15.                 int j1 = 10;
  16.                 int j2 = 10;
  17.                 System.out.println("감소연산자 선행 : "+ (--j1) );
  18.                 System.out.println("j1 : " + j1);
  19.                  
  20.                 System.out.println("감소연산자 후행 : "+ (j2--) );
  21.                 System.out.println("j2 : " + j2);
  22.         }
  23. }


   

 

출력결과

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

증감 연산자 선행/후행 실행후 결과값 확인

   

   

소스코드

  1.  public class OperatorEx15 {
  2.    
  3.         public static void main(String[] args) {
  4.    
  5.                 int n1=7;
  6.                 int result1=0;
  7.                 result1 = ++n1;
  8.                 System.out.println("++n : " + result1);
  9.                  
  10.                  
  11.                 int n2=7;
  12.                 int result2 =0;
  13.                 result2= --n2;
  14.                 System.out.println("--n : " + result2);
  15.                  
  16.                  
  17.                 int n3=7;
  18.                 int result3 =0;
  19.                 result3= n3++;
  20.                 System.out.println("n++ : " + result3);
  21.                  
  22.                  
  23.                 int n4=7;
  24.                 int result4 =0;
  25.                 result4= n4--;
  26.                 System.out.println("n-- : " + result3);
  27.                 //증감연산자 후행에서는 증가/감소값이 해당 연산 수행문에서는 적용이 되지 않고
  28.                 //다음 문장 부터 적용이 되게 됩니다.
  29.                  
  30.         }
  31. }


   

 

출력결과 

   

Posted by codedragon codedragon

댓글을 달아 주세요

증감/비교/논리 연산자

   

   

소스코드

  1.  public class OperatorEx05 {
  2.          
  3.         public static void main(String[] args){
  4.                 System.out.println("=========증감/비교/논리 연산자=========");
  5.                  
  6.                  
  7.                 System.out.println("논리 :");
  8.                 int a, b;
  9.                 a = b = 10;
  10.                 boolean c = (a++ >= ++b) && (++> b++);
  11.                 System.out.println("a++ >= ++b && ++a : " + c);
  12.                 System.out.println("a : " + a);
  13.                 System.out.println("b : " + b);
  14.                  
  15.                  
  16.                 System.out.println("");
  17.                 System.out.println("논리 :");
  18.                 int d, e;
  19.                 d = e = 10;
  20.                  
  21.                 boolean f = ++> e++ || d++ >= ++e;
  22.                 System.out.println("++d > e++ || d++ >= ++e : " + f);
  23.                 System.out.println("d : " + d);
  24.                 System.out.println("e : " + e);
  25.                  
  26.         }
  27. }


   

 

출력결과

   

   

   

Posted by codedragon codedragon

댓글을 달아 주세요