연산 관련 용어
연산자 연산에 사용되는 기호나 표시를 연산자라 한다.
피연산자 연산에 사용되는 데이터 또는 변수를 피연산자라 한다.
연산식 연산자와 피연산자를 사용하여 연산하는 과정을 연산식이라 한다.
*** 컴퓨터 프로그램에서는 연산의 결과가 어떤 자료형인지 아는 것이 중요하다.
산술연산자
+ 덧셈
char + char => int
String + 다른 자료형 => 문자연결
- 뺄셈
char - char => int
String은 뺄셈 불가
* 곱셈
char * char => int
String은 곱셈 불가
/ 나눗셈
char / char => int
String은 나눗셈 불가
10 /10 => 0으로 나누면 런타임 오류
% 나머지 연산
package day4;
public class Operator {
public static void main(String[] args) {
// 정수형 덧셈
System.out.println(10 +10); //int+int => int
System.out.println(10 +10.1); //int+double => double
System.out.println(10 +'a'); //int+char => int
System.out.println(0 +'ㄱ'); //영문 아스키코드로 숫자로 변환해 연산, 한글은 유니코드(UTF-8)
System.out.println(10 + "Hello"); //int+String => String
System.out.println();
// 실수형 덧셈
System.out.println(10.1 + 10); // double + int => double
System.out.println(10.1 + 10.0); // double + double => double
System.out.println(10.1 + 'a'); // double + char => double
System.out.println(10.1 + "Hello"); // double + char => double
System.out.println();
//char은 숫자와 만나면 ASCII 숫자로, 문자와 만나면 문자로
// 모든 타입은 문자열과 만나면 문자화 된다.
//문자형 덧셈
System.out.println('a' + 10); // char + int => int
System.out.println('a' + 10.1); //char + double => double
System.out.println('a' + 'a'); //char + char => int
System.out.println('a' + "Hello"); //char + String => String
//문자열 덧셈
System.out.println("Hello" + 10); // String + int => String
System.out.println("Hello" + 10.9); //String + double => String
System.out.println("Hello" + 'a'); //String + char => String
System.out.println("Hello" + "Hello"); //String + String => String
System.out.println();
//문자열과 더해지는 순간 어떤 자료형도 모두 문자열 된다 .
//순서를 잘 보자
System.out.println(10 + "Hello" + 20);
System.out.println(10 + 20 + "Hello");
System.out.println("Hello" + 10 + 20); // 이미 문자열..!
}
}
실행 결과 :
20
20.1
107
12593
10Hello
20.1
20.1
107.1
10.1Hello
107
107.1
194
aHello
Hello10
Hello10.9
Helloa
HelloHello
10Hello20
30Hello
Hello1020
package day4;
public class OperatorRest {
public static void main(String[] args) {
// - 빼기연산
System.out.println(10-5); // int - int => int
System.out.println(10-10.5); // int - double => double
System.out.println(10-'a'); // int - char => int
System.out.println('b'-'a'); // char - char => int
System.out.println();
// System.out.println(10-"Hello"); // 오류, 문자열 빼기는 안된다.
// * 곱하기 연산
System.out.println(10 * 5); // int * int => int
System.out.println(10 * 3.4); //int * double => double
System.out.println(10 * 'a'); //int * char => int
System.out.println('a' * 'b'); //char * char => int
System.out.println();
//System.out.println(10 * "Hello" ); //오류
// / 나누기 연산
System.out.println(10 / 5); //int / int => int
System.out.println(10 / 3.4); //int / double => double
System.out.println(100 / 'a'); //int / char => int
System.out.println('a' / 'a'); //char / char => int
//System.out.println('a' / "Hello"); //컴파일오류
//System.out.println(10/0); //런타임 오류 - 실행 중 오류가 난다.
// % 나머지 연산
System.out.println(10 / 3); // 몫
System.out.println(10 % 3); // 나머지 연산, 나머지 1 도출
System.out.println(2 % 2); // 나머지 0
System.out.println(3 % 2); // 나머지 1
System.out.println(4 % 2); // 나머지 1
// 짝수/홀수 가려낼 때, 2로 나눠서 나머지 0이면 짝수, 나머지 1이면 홀수
int var1 = 10;
int var2 = 20;
int var3 = 30;
int result1 = var1 + var2 * var3;
System.out.println(result1);
int result2 = (var1 + var2) * var3;
System.out.println(result2);
}
}
실행 결과 :
5
-0.5
-87
1
50
34.0
970
9506
2
2.9411764705882355
1
1
3
1
0
1
0
610
900
관계 연산자
a > b a가 b보다 크니? 맞아(true) or 틀려(false)
a < b a가 b보다 작니? true of false
a >= b a가 b보다 크거나 같니? true or false
a <= b a가 b보다 작거나 같니? true or false
a == b a가 b와 같니? true or false
a != b a가 b와 다르니? true of false
관계연산시 주의사항
>, <, >=, <=, ==, != 기본타입 변수에 대한
관계연산은 true/false(boolean)으로 받는다.
String의 관계연산은 없지만, ==에 대한 연산은 String.equals()로 한다.
String는 기본타입 연산자가 아니라 클래스타입이므로 메소드를 사용한다.
package day4;
import java.util.Scanner;
public class OperatorRelation {
public static void main(String[] args) {
System.out.println(10 > 5);
System.out.println('a' > 5);
System.out.println('a' > 'b');
System.out.println(10 < 10);
System.out.println(10 <= 5);
System.out.println(10 == 10);
System.out.println(10 != 10);
// 입력한 값을 확인하는 예제
Scanner scan = new Scanner(System.in);
System.out.print("정수 입력");
int num = scan.nextInt();
System.out.println(num > 19);
// 문자열 비교는? 안된다.
// System.out.println("안녕" > "안녕하세요") //오류
}
}
실행 결과 :
true
true
false
false
false
true
false
정수 입력 > 10
> false
논리 연산자
a && b 그리고(And) 연산자
a가 true고 b가 true면 결과는 true (하나라도 false 있으면 false)
a || b 또는(or) 연산자a 또는 b 둘 중 하나라도 true면 결과는 true
!a 부정(not) 연산자a가 true면 false, a가 false면 true
package day4;
public class OperatorLogical {
public static void main(String[] args) {
System.out.println(true && true);
System.out.println(true && false);
System.out.println(false && true);
System.out.println(false && false);
System.out.println();
System.out.println(true || true);
System.out.println(true || false);
System.out.println(false || true);
System.out.println(false || false);
System.out.println();
System.out.println(!true);
System.out.println(!false);
System.out.println();
// 10 > 5 && 10 < 80 연산은?
System.out.println(10 > 5 && 10 < 80);
}
}
실행 결과 :
true
false
false
false
true
true
true
false
false
true
true
연산자 우선순위
최우선 연산자 ()
단항 연산자 !
산술 연산자 * / % + -
쉬프트 연산자
관계 연산자 > < >= <= == !=
논리 연산자 && ||
삼항 연산자
대입 연산자 =
'language > Java' 카테고리의 다른 글
반복문 (for) (0) | 2022.05.29 |
---|---|
삼항 연산자, 조건문(if,switch) (0) | 2022.05.23 |
printf(), 형식지정자(%~), 입력 메소드 Scanner 클래스 (0) | 2022.05.16 |
변수 (0) | 2022.05.13 |
Setting (0) | 2022.05.13 |