hyeonga_code
Java_20_연산자_산술 연산자, 비교 연산자, 세 개의 정수를 입력 받아 큰 숫자부터 나열하기 본문
- 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 |
'Java' 카테고리의 다른 글
Java_20_연산자_나머지 연산자 % (0) | 2023.09.18 |
---|---|
Java_20_연산자_논리 연산자 (0) | 2023.09.18 |
Java_20_연산자_실수 연산 (0) | 2023.09.18 |
Java_20_연산자_문자 연산 (0) | 2023.09.18 |
Java_20_연산자_논리 부정 연산자 ! , 이항 연산자 (0) | 2023.09.18 |