hyeonga_code

Java_20_연산자_산술 연산자, 비교 연산자, 세 개의 정수를 입력 받아 큰 숫자부터 나열하기 본문

Java

Java_20_연산자_산술 연산자, 비교 연산자, 세 개의 정수를 입력 받아 큰 숫자부터 나열하기

hyeonga 2023. 9. 18. 10:59
반응형

- Operand_피연산자
    - 연산자의 작업 대상

 - Operator_연산자
    - 어떠한 기능을 수행하는 것
    - 연산자보다 오류의 파악이 중요합니다.
    - 유형
            - 산술 연산자
                - 사칙연산을 통해 숫자를 연산합니다.
                - +, -, *, /, %, <<, >>, >>>
                
            - 비교 연산자
                - >, <, >=, <=, ==, !=
                    == : 수학적 의미의 같다
                    != : 같지 않다
                    >= : 크거나 같다_ 부등호가 먼저 나와야 함
                    <= : 작거나 같다
                    > : 크다
                    < : 작다
                - 피연산자를 같은 타입으로 변환한 뒤에 비교합니다.
                - 결과 값은 true/false 논리형으로 반환됩니다.
                - boolean 을 제외한 기본형에 사용할 수 있습니다.
                - 참조형에는 ==, != 만 사용할 수 있습니다.
                    - 문자열에는 크기가 없으므로 !=, == 연산자만 사용할 수 있습니다.
                - 문자 연산에는 비교연산자를 사용하면 안됩니다.
                - 문자열 연산
                    - + 만 사용할 수 있습니다.
'OperatorEx.java'
=====

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
37
38
39
40
41
42
ackage basic;
//모든 클래스는 패키지 안에 생성합니다.
 
public class OperatorEx {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
    
    public static void main(String[] args) {
        // Java의 모든 코드는 함수 안에 작성합니다.
        
        // 문자열
        String str1 = "abc";                // 자동으로 Heap 공간에 저장됩니다.
        String str2 = new String("abc");    // 수동으로 Heap 공간에 저장됩니다.
        String str3 = "abc";                // 자동으로 Heap 공간에 저장됩니다.
        
        System.out.println("str1 == str2 : " + (str1 == str2));
        System.out.println("str1 == str3 : " + (str1 == str3));
        System.out.println("str2 == str3 : " + (str2 == str3));
        /*
             str1 == str2 : false
                 - Heap 공간의 주소가 다르다면 false를 반환합니다.
                 - 값은 일치하지만 서로 다른 Heap 공간에 저장된 값이기 때문에 false를 반환합니다.
            str1 == str3 : true
                - 따로 선언했지만 같은 메모리를 사용합니다.
                - str1 에서 자동으로 저장된 abc의 주소를 찾아 가리키게 됩니다.
                - new 를 사용하여 수동으로 선언한 값은 찾는 대상에 포함되지 않습니다.
            str2 == str3 : false
         */    
 
        str1 = "abcd";
        System.out.println("str1 == str3 : " + (str1 == str3));
        System.out.println("str1 : " + str1 + ", str3 : " + str3);
            /*
                 str1 == str3 : false
                 str1 : abcd, str3 : abc
                    - String pool에 저장된 str3의 값이 그대로 있으므로 변하지 않습니다.
             */                
        System.out.println("str3 == str2 : " + str3.equals(str2));    // 값을 비교합니다.
            /*
                 str3 == str2 : true
             */
    }
}
cs

 

> Q.세 개의 정수를 입력 받아 큰 수  대로 나열
'OperatorEx.java'
=====

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package basic;
// 모든 클래스는 패키지 안에 생성합니다.
import java.util.*;
public class OperatorEx {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
    
    public static void main(String[] args) {
        // Java의 모든 코드는 함수 안에 작성합니다.
        Scanner in = new Scanner(System.in);
        System.out.println("Input number 1: ");
        int num1 = in.nextInt();
        // 첫 번째 수 입력
        System.out.println("Input number 2: ");
        int num2 = in.nextInt();
        // 두 번째 수 입력
        System.out.println("Input number 3: ");
        int num3 = in.nextInt();
        // 세 번째 수 입력
        if (num1 >= num2) {
            // num1 이 num2 보다 크거나 같을 때
            if (num1 >= num3) {
                // num1이 제일 클 때
                if (num2 >= num3) {
                    // num1이 제일 크고 num2가 num3보다 크거나 같을 때 
                    System.out.println(num1 + " >= " + num2 + " >= " + num3);
                }
                else {
                    // num1이 제일 크고 num3이 num2보다 크거나 같을 때
                    System.out.println(num1 + " >= " + num3 + " >= " + num2);
                }
            }
            else {
                // num1이 num2보다 크거나 같고, num3보다 작거나 같을때
                System.out.println(num3 + " >= " + num1 + " >= " + num2);
            }
        }
        else {
            // num2가 num1보다 크거나 같을 때
            if (num2 >= num3) {
                // num2가 제일 클 때
                if (num1 >= num3) {
                    // num2가 제일 크고 num1이 num3보다 크거나 같을 때
                    System.out.println(num2 + " >= " + num1 + " >= " + num3);
                }
                else {
                    // num2가 제일 크고 num3이 num2보다 크거나 같을 때
                    System.out.println(num2 + " >= " + num3 + " >= " + num1);
                }
            }
            else {
                // num2가 num1보다 크거나 같고 num3이 num2보다 크거나 같을 때
                System.out.println(num3 + " >= " + num2 + " >= " + num1);
            }
        }
    }
}
cs

 >>> 코드가 너무 길어지게 됩니다.


'OperatorEx.java'
=====

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
37
38
39
40
41
42
43
package basic;
// 모든 클래스는 패키지 안에 생성합니다.
 
import java.util.*;
 
public class OperatorEx {
    // 모든 함수_메소드는 클래스 안에 작성합니다.
    
    public static void main(String[] args) {
        // Java의 모든 코드는 함수 안에 작성합니다.
 
        Scanner in = new Scanner(System.in);
 
        System.out.println("Input number 1: ");
        int num1 = in.nextInt();
        System.out.println("Input number 2: ");
        int num2 = in.nextInt();
        System.out.println("Input number 3: ");
        int num3 = in.nextInt();
 
        // num1이 가장 큰 수가 아닐 경우
        if (num2 > num1 && num2 >= num3) {
            // num2가 가장 큰 수일 경우
            int tmp = num1;
            // num1 값을 임시로 저장
            num1 = num2;
            // 가장 큰 값 num2를 num1에 저장
            num2 = tmp;
            // 임시로 tmp에 저장해두었던 초기 num1 값 num2에 저장
            //  >> num1이 num2보다 큰 수가 됨
        }
        else if (num3 > num1 && num3 > num2) {
            // num3이 가장 큰 수일 경우(num1 이 num2보다 큰 상태)
            int tmp = num1;
            // num1 값을 임시로 저장
            num1 = num3;
            // 가장 큰 값 3을 num1에 저장
            num3 = tmp;
        }
        System.out.printf("%d >= %d >= %d \n", num1, num2, num3);
        // 입력받은 값이 어떻든, 제일 큰 수를 num1>num2>num3 순으로 넣는다.
    }
}
cs

 

반응형