달력

12

« 2019/12 »

  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  


 논리 연산자와 SCE(Short-Circuit Evaluation)

·       SCE '최단거리 연산'이라고도 합니다.

·       연산 결과 나온것에 대해 더 이상 연산을 수행하지 않습니다.

·       자바(JAVA) SCE 연산을 지원합니다.

·       자바스크립트(JaveScript) SCE 연산을 지원합니다.

·       파이썬(Python)SCE 연산을 지원합니다.

 

 

연산자

설명

AND

·       선조건이 true일 때만 후조건을 실행하며

·       선조건이 false일 경우 후조건을 실행하지 않습니다.

OR

·       선조건이 true이면 후조건을 실행하지 않으며

·       선조건이 false인 경우에만 후조건을 실행합니다.

 

Posted by codedragon codedragon

댓글을 달아 주세요

   

SCE연산 수행으로 인한 주의 사항

   

   

   

소스코드

  1.  class OperatorSCE
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int num1=0, num2=0;
  6.                 boolean result;
  7.                  
  8.                 result = (num1+=10)<&& (num2+=10)>0;
  9.                 //(num1+=10)<0 -> 10<0 -> false
  10.                 //(num2+=10)>0 -> 10>0 -> true
  11.                 // false && true
  12.                 //SCE연산이 수행됩으로써 오른쪽의(num2+=10) 연산이 수행되어 지지 않습니다.
  13.                 System.out.println("result= "+result);
  14.                 System.out.println("num1= " + num1 + ", num2= " + num2);
  15.                  
  16.                  
  17.                 System.out.println("");
  18.                 result = (num1+=10)>|| (num2+=10)>0;
  19.                 //(num1+=10)>0 -> 10>0 -> true
  20.                 //(num2+=10)>0 -> 10>0 -> true
  21.                 // false && true
  22.                 System.out.println("result= " + result);
  23.                 System.out.println("num1= " + num1 + ", num2= " + num2);
  24.                 //SCE연산이 수행됩으로써 오른쪽의 (num2+=10) 연산이 수행되어 지지 않습니다.
  25.         }
  26. }

https://github.com/10zeroone/study_Java/blob/master/ch03-operator/src/OperatorSCE.java

   

 

출력결과 

   

   

   

과제

num1과 num2가 다 연산되게 코딩 바꿔보기

Posted by codedragon codedragon

댓글을 달아 주세요