1. 연산자의 우선순위와 결합규칙
👩🏻🚀 산술 > 비교 > 논리 > 대입 (제일 마지막에 수행)
👩🏻🚀 단항 > 이항 > 삼항
⚡️ 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽
➡️ 오른쪽에서 왼쪽으로 연산을 수행
2. 단항 연산자
(1) 증감 연산자
① 증가 연산자 (++) 피연산자의 값을 1 증가
② 감소 연산자 (--) 피연산자의 값을 1 감소
⚡️ 전위형 : ++a <증가 후 출력>
⚡️ 후위형 : a++ <출력 후 증가>
** 단독으로 쓰이는 경우엔 전위나 후위 결과값 같음!!
public class MyOper_12 {
public static void main(String[] args) {
int i = 5, j = 5;
System.out.println(i++); // 5. 출력 후 증가
System.out.println(++j); // 6. 증가 후 출력
System.out.println("i = " + i + ", j = " +j); // 6 6 실행 후에는 동일한 값
}
}
public class Exam007 {
public static void main(String[] args) {
int a = 1;
System.out.println(a); // 1
a++; // a = a + 1;
System.out.println(a); // 2
System.out.println(++a); // 3
System.out.println(a++); // 3
System.out.println(a); // 4
}
}
3. 대입 연산자
✏️ 변수와 같은 저장공간에 '값 또는 수식의 연산결과'를 저장하는데 사용됨
✏️ 오른쪽 피연산자의 값을 왼쪽 피연산자에 저장
💡 복합 대입 연산자
* a = a + 2 ▶️ a += 2 (덧셈)
* a = a - 3 ▶️ a -= 3 (뺄셈)
* a = a / 2 ▶️ a /= 2 (나눗셈)
* a = a * 3 ▶️ a *= 3 (곱셈)
public class Exam013 {
public static void main(String[] args) {
int a = 3;
int b = 5;
System.out.println(b); // 5
b = a; // copy
System.out.println(b); // 3
System.out.println(a); // 3
a += 1; // a = a + 1
System.out.println(a); // 4
a /= 2; // a = a / 2
System.out.println(a); // 2
a *= a; // a = a * a
System.out.println(a); // 4
}
}
4. 비교 연산자
✏️ 주로 조건문과 반복문의 조건식에 사용되며 연산결과는 오직 true 와 false 둘 중 하나
1) 대소비교 연산자 ( <, >, <=, >= )
비교연산자
|
연산결과
|
>
|
좌변 값이 크면 true 아니면 false
|
<
|
좌변 값이 작으면 true 아니면 false
|
>=
|
좌변 값이 크거나 같으면 true 아니면 false
|
<=
|
좌변 값이 작거나 같으면 true 아니면 false
|
public class Exam008 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b); // t
System.out.println(a > b); // f
System.out.println(a + b <= c); // 산술연산자가 비교연산자 보다 먼저 실행. t
System.out.println(a + b >= c); // t
}
}
2) 등가비교 연산자 (==, !=)
비교연산자
|
연산결과
|
==
|
두 값이 같으면 true 아니면 false
|
!=
|
두 값이 다르면 true 아니면 false
|
public class Exam009 {
public static void main(String[] args) {
double a = 3.14;
double b = 5.14;
System.out.println(a == b); // false
System.out.println(a != b); // true
/* 문자열의 경우 equals() 메서드를 이용해서 값을 비교 */
String c1 = "Hello JAVA!";
System.out.println(c1.equals("Hello java!")); // false
System.out.println(c1.equals("Hello JAVA!")); // true
}
}
5. 논리 연산자
✏️ || (OR 결합) : 피연산자 중 어느 한 쪽만 true이면 true를 결과로 얻는다
✏️ && (AND결합) : 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다
public class MyOper_21 {
public static void main(String[] args) {
// 논리곱
System.out.println(true && true); // true 1 * 1 = 1
System.out.println(true && false);// false 1 * 0 = 0
System.out.println(false && true); // false 0 * 1 = 0
System.out.println(false && false); // false 0 * 0 = 0
// 논리합
System.out.println(true || true); // true 1 + 1 = 2
System.out.println(true || false); // true 1 + 0 = 1
System.out.println(false || true); // true 0 + 1 = 1
System.out.println(false || false); // false 0 + 0 = 0
}
}
public class Exam010 {
public static void main(String[] args) {
/* 논리 연산자
* 2항 연산자이고, 항은 boolean 값이고 결과도 boolean
*/
int a = 10;
// 비교연산자가 논리연산자 보다 먼저 실행
System.out.println(5 < a && a < 15); // true -> true && true
System.out.println((5 < a && a < 15) && a % 2 == 0); // true -> true && true
a = 4;
System.out.println((5 < a && a < 15) && a % 2 == 0); // false -> false && true
System.out.println((5 < a && a < 15) || a % 2 == 0); // true -> false || true
}
}
6. 삼항 연산자
a ? b : c
- a 값이 true면 b, false면 c 결과 값이 도출
import java.util.Scanner;
public class Exam012 {
public static void main(String[] args) {
int age = 20;
System.out.println(age > 19 ? "성인입니다" : "청소년입니다");
// 성인입니다
Scanner scanner = new Scanner(System.in);
// 같은 줄에서 입력을 받기 위해 prinln() 대신 print() 사용.
System.out.print("나이를 입력하세요: ");
int age1 = scanner.nextInt();
System.out.println(age1 > 20 ? "성인입니다" : "청소년입니다" );
scanner.close();
}
}
💡 키보드 입력 데이터 변수에 저장하는 방법
Scanner scanner = new Scanner(System.in);
➡️ 생성된 scanner 객체를 변수에 대입
int 변수명 = scanner.nextInt(); / String 변수명 = scanner.nextLine();
➡️ 입력된 문자열을 변수에 대입
** nextLine()메소드는 Enter를 치기 전까지 쓴 문자열을 모두 리턴
next() 메소드는 스페이스 즉 공백 전까지 입력받은 문자열을 리턴
(출처: https://deftkang.tistory.com/55 [deftkang의 IT 블로그:티스토리])
import java.util.Scanner;
public class InputString {
public static void main(String[] args) {
String name;
int age;
Scanner scanner = new Scanner(System.in);
System.out.print("이름을 입력하시오: ");
name = scanner.nextLine(); // 문자열 입력
System.out.println("나이를 입력하시오: ");
age = scanner.nextInt(); // 정수 입력
System.out.println(name + "님 안녕하세요! " + age + "살이시네요.");
scanner.close();
}
}
사용자로부터 숫자를 입력받아 cm를 inch 단위로 변환하여 출력하는 프로그램
* 1cm는 0.393701 inch로 반환
* 예) cm 단위의 숫자를 입력해주세요. * 입력 > 24 * 24cm는 9.448824 inch 입니다.
import java.util.Scanner;
public class Ex_07 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int cm;
double inch;
System.out.print("cm 단위의 숫자를 입력해주세요. ");
System.out.print("입력 > ");
cm = scanner.nextInt();
inch = cm * 0.393701;
System.out.println(cm + "cm는 " + inch + "inch 입니다.");
scanner.close();
}
}
사용자로부터 숫자를 입력받아 달러를 원으로 변환하여 출력하는 프로그램
* 1달러는 1289.50원으로 반환
* 예) 달러 단위의 금액을 입력해주세요. 입력 > 24 -> 원화 : 30948.0
import java.util.Scanner;
public class Ex_08 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int dollar;
double won;
System.out.print("달러 단위의 금액을 입력해주세요. ");
System.out.print("입력 > ");
dollar = scanner.nextInt();
won = dollar * 1289.50;
System.out.println("-> 원화 : " + won );
scanner.close();
}
}
[ 내용 참고 : IT 학원 강의 및 자바의 정석 3rd ]
'Programming Language > JAVA' 카테고리의 다른 글
[Java] while 문 · break문 · continue 문 (0) | 2024.08.09 |
---|---|
[Java] Switch문 · for문 (0) | 2024.05.22 |
[Java] 비트 연산자 · if 문 (0) | 2024.05.21 |
[JAVA] 형변환 casting & 연산자 operator (0) | 2024.04.01 |
[JAVA] 변수와 변수 기본형, 상수와 리터럴, 문자열 연산 (1) | 2024.04.01 |