▶ 연산자 (산술,대입,비교,증감,논리,비트,기타)
◈ 산술 연산자 (+, -, *, / ... %)
정수/정수 = 몫
정수%정수 = 나머지
(double)정수/정수=실수
강제형변환 -자동형변환
System.out.println("--------산술연산자---------");
int num1 = 10, num2 = 3;
int n = 10;
System.out.println(num1 + num2);
System.out.println(num1 - num2);
System.out.println(num1 * num2);
System.out.println(num1 / num2);
System.out.println(num1 % num2);
◈ 대입 연산자 (=)
★ = (대입), == (같다)
n = n + 2; 왼쪽 문장과 오른쪽 문장은 같은 의미 이다. n += 2;
System.out.println("--------대입연산자---------");
System.out.println(n += 3); //13
System.out.println(n -= 3); //7
System.out.println(n *= 3); //30
System.out.println(n /= 3); //3
System.out.println(n %= 3); //1
System.out.println(n);
// +부터 계산된 값이 n에 저장되므로 두번째는 13-3이 됨
◈ 증감 연산자 ( 전위 연산자, 후위 연산자 )
- 전위 연산자 : 한줄에 모든 연산자 중에서 가장 먼저 실행됨
- 후위 연산자 : 한줄에 모든 연산자 중에서 가장 나중에 실행됨
전위 연산자 : n += 1; 또는 ++n; (1씩 증가), --n; (1씩 감소)
후위 연산자 : n++; , n--;
연산자 우선순위에 따라 결과값이 달라질 수 있다.
System.out.println("--------증감연산자---------");
int result = 0;
int num = 10;
result = 3 * (++num);
System.out.println("전위 연산자 result :"+result+", num :"+num);
result = 3 * (num--);
System.out.println("후위 연산자 result :"+result+", num :"+num);
◈ 비교연산자 ( >, <, >=, <=, ==, !=)
> (초과), < (미만), >= (이상), <= (이하), == (같다), != (같지 않다/다르다)
→ 결과값 : true 또는 false (boolean 자료형)
System.out.println("--------비교연산자---------");
int num4 = 10, num5 = 3;
System.out.println(num4 == num5);
System.out.println(num4 != num5);
System.out.println(num4 > num5);
System.out.println(num4 < num5);
◈ 논리연산자 (&&, ||, !)
조건이 2개 이상일 때
and(&&) - 모두 만족해야 true
or(||) - 하나라도 만족하면 true
not(!) - 결과 반전 (true -> false, false -> true)
System.out.println("--------논리연산자---------");
int small = 3, middle = 10, big = 20;
System.out.println(small > middle && small > big);
System.out.println(small > middle && middle > big);
System.out.println(big > small && big > middle);
// 논리 연산자 예제
// 변수 height = 118.5 , age =7 값 초기화
// 키가 120 이상이고 , 나이가 6세 이상이면 true 출력 (and)
double heigth = 118.5;
int age =7;
System.out.println("키가 120 이상이고, 나이가 6세 이상인가? " + (heigth >= 120 && age >= 6));
// 키가 120 이상이거나 , 나이가 6세 초과이면 true 출력 (or)
System.out.println("키가 120 이상이거나 , 나이가 6세 초과하는가? " +(heigth >= 120 || age >= 6));
// not 연산
System.out.println("and-not연산: " + !(heigth >= 120 && age >= 6));
System.out.println("or-not연산: " + !(heigth >= 120 || age >= 6));
◈ 비트연산자 (&, |)
· 기계,제품 관련 코딩 시 필요함
· 비트로 풀어서 비트끼리 연산
· &, |, !
· SHIFT 연산 : 비트 자리를 옆으로 한칸씩 이동
- 2진수이다 보니, 왼쪽 > 2배 증가 / 오른쪽 2배 감소
- 곱하기 하는 것보다 속도가 빠름
- 기계에 들어가는 프로그램일 수록 shift 연산 유리할 수도 있음
◈ 기타연산자 (삼항연산자)
삼항 연산자
★ 삼항 연산자의 형식 - (조건) ? 참 : 거짓
System.out.println("----삼항 연산자------");
int n = 10;
String txt = (n>10) ? "Yes" : "No";
System.out.println(n>10);
System.out.println(txt);
System.out.println((n>10) ? "Yes" : "No"); // 식을 넣어도됨
▶ 제어문 (if, if else)
// 금액이 천원 이상이면 사은품 증정 메시지 띄우고, 천원 미만인 경우 다른 문구
System.out.println("금액이 천원 이상인 경우에만 사은품 증정");
int total = 500;
if(total >= 1000) {
System.out.println("사은품 증정!");
}else {
System.out.println("사은품 없음!");
}
// 금액에 따라 사은품이 다름
System.out.println("금액별로 증정하는 사은품이 다른 경우");
if (total >= 1000) {
System.out.println("사은품 : 상품권");
} else if (total >= 500) {
System.out.println("사은품 : 고무장갑");
}else if (total >= 300){
System.out.println("사은품 : 비닐장갑");
}else {
System.out.println("사은품 : 없음");
}
◈ 제어문 예제 1)
// score에 점수가 들어있다.
// 90점 이상이면 A, 80점 이상이면 B, 70점 이상이면 C, 이 외에는 f 출력
System.out.println("socre 점수에 따른 결과값 출력");
int score = 87;
// if(score >= 90) {
// System.out.println("90점 이상입니다. : A");
// }else if(score >=80) {
// System.out.println("80점 이상입니다. : B");
// }else if(score >= 70) {
// System.out.println("70점 이상입니다. : C");
// }else {
// System.out.println("70점 미만입니다. : F");
// }
// --------------- 좀 더 간단하게 grade에 문자를 받아 출력하는 방법도 있음 ----------------
char grade;
if(score >= 90) {
grade = 'A';
}else if(score >=80) {
grade = 'B';
}else if(score >= 70) {
grade = 'C';
}else {
grade = 'D';
}
System.out.println(grade);
◈ 제어문 예제 2)
// 국어(kor),영어(eng),수학(math) 점수가 있음
// 합계, 평균 계산하여 출력
// 평균이 80점 이상이면 "합격" 미만이면 "불합격"
int kor=97, eng=65, math=79 ;
int sum =0;
double avg=0;
sum = kor+eng+math;
avg = (double)sum/3; // SUM이 정수이므로 강제형변환 필요!!
System.out.println("세 과목의 합계는 "+sum+"입니다.");
if(avg >= 80) {
System.out.println("평균 "+avg+" 이므로 합격!");
}else {
System.out.println("평균 "+avg+" 이므로 불합격!!");
}
◈ 제어문 예제 3)
// 3개 정수를 입력받아, 최대값/최소값 찾기
int num1=97, num2 = 79, num3 = 65;
// int max = num1; // 최대값을 지정해두고 시작하는것이 포인트,
// int min = num1; // 지정한 최대값과 다른 값을 비교해 최댓값 자리의 수를 트레이드 시킴
// if (max < num2) {
// max = num2;
// }else if(max < num3) {
// max = num3;
// }
// if (min > num2) {
// min = num2;
// }else if(min > num3) {
// min = num3;
// }
// System.out.println("최대값 :"+max);
// System.out.println("최소값 :"+min);
//--------------------위의 코드 더 줄이기 가능------------------------
int max=num1, min=num1;
if (max < num2) {max=num2;}
if (max < num3) {max=num3;}
if (min > num2) {min=num2;}
if (min > num3) {min=num3;}
◈ 제어문 예제 4)
// 임의의 알파벳이 대문자? 소문자? 판별하기
// 아스키 코드 표의 10진수 참고하기
char ch = '*';
if(ch >= 65 && ch <= 90) {
System.out.println("대문자");
}else if (ch >= 97 && ch <= 122){
System.out.println("소문자");
}else if(ch >= 33 && ch <= 47) {
System.out.println("특수문자");
}else {
System.out.println("나머지 기호");
}
http://naver.me/x2kKuilz
'국비지원 JAVA 풀스택 과정 > JAVA' 카테고리의 다른 글
[JAVA] 접근 제한자 (0) | 2022.09.23 |
---|---|
[JAVA] 자바 프로그램 작성 순서 (0) | 2022.09.23 |
[JAVA] 개발자 환경 구축 (1) | 2022.09.23 |
22.09.13 사전수업_3_조건문, 반복문 (0) | 2022.09.13 |
22.09.07_사전 수업_1_변수,상수 (0) | 2022.09.06 |