JAVA chapter 03. 연산자. 


3.4 이항 연산자

3.4.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
package sec04.exam01_arithmetic;
public class ArithmeticOperatorExample {
    public static void main(String[] args) {
        int v1 = 5;
        int v2 = 2;
        
        int result1 = v1 + v2;
        System.out.println("result1=" + result1);
        
        int result2 = v1 - v2;
        System.out.println("result2=" + result2);
        
        int result3 = v1 * v2;
        System.out.println("result3=" + result3);
        
        int result4 = v1 / v2;
        System.out.println("result4=" + result4);
        
        int result5 = v1 % v2;
        System.out.println("result5=" + result5);
        
        double result6 = (double) v1 / v2;
        System.out.println("result6=" + result6);    
    }
}
cs


1
2
3
4
5
6
7
8
9
10
11
12
package sec04.exam01_arithmetic;
 
public class CharOperationExample {
    public static void main(String[] args) {
        char c1 = 'A' + 1;
        char c2 = 'A';
        //char c3 = c2 + 1;    //컴파일 에러 // char c3 = (char) (c2 + 1);
        System.out.println("c1: " + c1);
        System.out.println("c2: " + c2);
        //System.out.println("c3: " + c3);
    }
}
cs






// 이진 포맷의 가수를 사용하는 부동소수점 타입(float, double)은 0.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
27
28
29
30
31
32
33
34
35
36
package sec04.exam01_arithmetic;
public class InfinityAndNaNCheckExample {
    public static void main(String[] args) {
        int x = 5;
        double y = 0.0;
        
        double z = x / y;
        //double z = x % y;
        
        System.out.println(Double.isInfinite(z));
        System.out.println(Double.isNaN(z));    
        
        //잘못된 코드
        System.out.println(z + 2);    
        
        //알맞은 코드
        if(Double.isInfinite(z) || Double.isNaN(z)) { 
            System.out.println("값 산출 불가"); 
        } else { 
            System.out.println(z + 2); 
        }
        
        //---------------------------------------------------
        
        /*int x = 5;
        int y = 0;
        
        try {
            //int z = x / y;
            int z = x % y;
            System.out.println("z: " + z);
        } catch(ArithmeticException e) {
            System.out.println("0으로 나누면 안됨");
        }*/
    }
}
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
package sec04.exam01_arithmetic;
 
public class InputDataCheckNaNExample1 {
    public static void main(String[] args) {
        String userInput = "NaN";
        double val = Double.valueOf( userInput );
        
        double currentBalance = 10000.0;
        
        currentBalance += val;
        System.out.println(currentBalance);
    }
}
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package sec04.exam01_arithmetic;
 
public class InputDataCheckNaNExample2 {
    public static void main(String[] args) {
        String userInput = "NaN";
        double val = Double.valueOf(userInput);
        
        double currentBalance = 10000.0;
        
        if(Double.isNaN(val)) {
            System.out.println("NaN이 입력되어 처리할 수 없음");
            val = 0.0;
        } 
        
        currentBalance += val;
        System.out.println(currentBalance);
    }
}
cs


3.4.2 문자열 연결 연산자

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package sec04.exam02_string_concat;
 
public class StringConcatExample {
    public static void main(String[] args) {
        String str1 = "JDK" + 6.0;
        String str2 = str1 + " 특징";
        System.out.println(str2);
        
        String str3 = "JDK" + 3 + 3.0;
        String str4 = 3 + 3.0 + "JDK";
        System.out.println(str3);
        System.out.println(str4);        
    }
}
cs



3.4.3 비교 연산자(==, !=, <, >, <=, >=)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package sec04.exam03_compare;
 
public class CompareOperatorExample1 {
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 10;
        boolean result1 = (num1 == num2); 
        boolean result2 = (num1 != num2); 
        boolean result3 = (num1 <= num2);
        System.out.println("result1=" + result1);
        System.out.println("result2=" + result2);
        System.out.println("result3=" + result3);
        
        char char1 = 'A';
        char char2 = 'B';
        boolean result4 = (char1 < char2);
        System.out.println("result4=" + result4);        
    }
}
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package sec04.exam03_compare;
 
public class CompareOperatorExample2 {
    public static void main(String[] args) {
        int v2 = 1;
        double v3 = 1.0;
        System.out.println(v2 == v3); //true
        
        double v4 = 0.1;
        float v5 = 0.1f;
        System.out.println(v4 == v5); //false
        System.out.println((float)v4 == v5); //true
        System.out.println((int)(v4*10== (int)(v5*10)); //true
    }
}
cs




1
2
3
4
5
6
7
8
9
10
11
12
13
14
package sec04.exam03_compare;
public class StringEqualsExample {
    public static void main(String[] args) {
        String strVar1 = "신민철";
        String strVar2 = "신민철";
        String strVar3 = new String("신민철");
 
        System.out.println( strVar1 == strVar2);
        System.out.println( strVar1 == strVar3);
        System.out.println();
        System.out.println( strVar1.equals(strVar2));
        System.out.println( strVar1.equals(strVar3));
    }
}
cs



3.4.4 논리 연산자(&&, ||, &, |, ^, !)


// &&는 앞의 피연산자가 false라면 뒤의 피연산자를 평가하지 않고 바로 false라는 산출 결과를 낸다.

// ||는 앞의 피연산자가 true라면 뒤의 피연산자를 평가하지 않고 바로 true라는 산출 결과를 낸다


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
package sec04.exam04_logical;
public class LogicalOperatorExample {
    public static void main(String[] args) {
        int charCode = 'A';        
        
        if( (charCode>=65& (charCode<=90) ) {
            System.out.println("대문자 이군요");
        }
        
        if( (charCode>=97&& (charCode<=122) ) {
            System.out.println("소문자 이군요");
        }
        
        if!(charCode<48&& !(charCode>57) ) {
            System.out.println("0~9 숫자 이군요");
        }
        
        int value = 6;
        
        if( (value%2==0| (value%3==0) ) {
            System.out.println("2 또는 3의 배수 이군요");
        }
        
        if( (value%2==0|| (value%3==0) ) {
            System.out.println("2 또는 3의 배수 이군요");
        }        
    }
}
cs


3.4.5 비트 연산자(&, |, ^, ~, <<, >>, >>>)




3.4.6 대입 연산자(=, +=, -=, *=, /=, %=, &=, ^=, !=, <<=, >>=, >>>=)


3.5 삼항 연산자




Posted by 너래쟁이
: