
※ 연산자
▶ 연산자의 종류
1. 단항 연산자 : ++ -- + - ~ !
- 왼쪽에서 오른쪽으로 연산
+ , - ) 피연산자의 부호를 변경하는데 사용
~ ) 비트전환연산자 / 잘모르겠음
! ) 논리부정연산자
- boolean형에만 사용
true는 false로, false는 true로 변경. 따라서 조건문과 반복문의 조건식에 사용됨
++a ) 선증가 : 증가 후 a 찍기
a++ ) 후증가 : 일단 찍고 증가
▽
++a , a++ = a=a+1
단독 (단항)으로 사용되는경우,
전위형, 후위형 결과는 같다
2. 산술 연산자 * / % + - << >> >>>
% ) 나머지 연산자
/ ) 나눗셈
3. 비교 연산자 > < <= >=
- 비교 연산자의 결과는 언제나 true , false
> 크다 ※ 아가리 왼쪽 : 크다 / 오른쪽 : 작다
< 작다
>= 크거나 같다
<= 작거나 같다
== 같다 ※ JAVA에서 같다는 ==로 표현한다 !!! 자꾸 헷갈리는데 주의 !!
!== 같지않다
4. 논리 연산자 & ^ | && || ?:
- 논리 연산자의 결과는 언제나 true , false
&& ) and
|| ) or
^ ) (XOR) 피연산자가 같으면 false, 다르면 true
&&, || ) Short-Circuit AND, OR 연산자
- 두 값을 가지고 논리 연산할 경우 첫 번째 값만을 가지고 참, 거짓을 판단할 수 있다면,
거기서 바로 연산을 빠져 나와 효과적이고 빠른 코드를 만들 수 있는 연산자
- || 연산자는 첫 번째 값이 참이면 그 연산은 무조건 참이 되고,
&&연산자는 첫 번째 값이 거짓이면 그 연산은 무조건 거짓이 되므로 더이상 연산을 진행하지 않고 빠져나온다
예제
1) int 형 변수 i가 200보다 크거나 같고 500보다 작거나 같을 때 true인 조건식
i >=200 && i <= 500
2) char형 변수 ch가 공백이나 탭이 아닐 때 true인 조건식
!(ch == ' ' || ch =='\t') 또는 ch!=' ' && ch !='\t'
3) char형 변수 ch가 'y' 또는 'Y'일 때 true인 조건식
ch == 'y' || ch == 'Y'
4) boolean형 변수 powerOn이 false일 때 true인 조건식
!powerOn 또는 powerOn==false
5) 문자열 참조변수 lang이 "java"일 때 true인 조건식
lang.equals("java") 또는 "java".equals(lang)
6) char형 변수 a가 숫자(‘0’~‘9’)일 때 true인 조건식
a>= '0' && a <='9'
7) char형 변수 ch가 영문자(대문자 또는 소문자)일 때 true인 조건식
(ch>= 'a' && ch <= 'z') || (ch>='A' && ch <= 'Z')
8) int형 변수 year가 400으로 나누어 떨어지거나 또는 4로 나누어 떨어지고 100으로 나누어 떨어지지 않을 때 true인 조건식
year%400==0 || (year%4==0 && year%100!=0)
-논리 연산자에 비트논리연산자 라는게 있는데 이해못했음. 배우긴했는데 모르겠어서 정리못하겠음;;
5. 삼항 연산자 ?:
- 변수선언 = (조건식)?값1:값2;
- 이때 변수 , 값1, 값2 데이터 타입이같아야함
- true : 왼쪽 / false : 오른쪽 값 도출
- 괄호() 안 조건식에는 비교 or 논리연산자 이용
: 결과가 true / false 로 나와야하기때문
int a = 1, b=2;
int c=(a>b)?a:b;
System.out.println("더큰 수는" + c);
int num = 17;
String result = (num%2==1)? "홀수":"짝수";
System.out.println("num=" + num + " => "+ result);
6. 대입 연산자 = *= /= %= += -= <<= >>= >>>= &= ^= |=
- 왼쪽에서 오른쪽으로 연산
- 좌변과 우변의 타입이 일치해야 함(형 변환)
a+=b; // a=a+b
a/=b; // a=a/b
a*=b; // a=a*b
Quiz : 결과가 true / false 로 나오는 연산자는 ?
- 비교연산자, 논리연산자, 삼항연산자
▶ 연산자의 우선순위
산술 > 비교 > 논리 > 대입
단항 > 이항 > 삼항
※ 제어문
▶ 조건문
if 문 : 특정 조건이 만족될 때만 실행하고 싶은 경우 사용
- 형태 : if (조건식) {
문장; } => 조건식이 참이면 문장을실행,
만족하지않으면 한번도 수행하지않음
*조건식 : 비교 || 논리연산자 이용해야함 / 결과값 true || false 가 나와야하기 때문
int num = 17;
String result ="";
if(num%2==1){
result ="홀수";
}else{
result ="짝수";
}
System.out.println("num=" + num + " => "+ result);
~ 오늘 배운 새로운 메서드 ~
▣ equal 메서드 : 변수.equals
- if 문 사용할 때
if "남자" 라면 ~ if "여자" 라면 라고 코딩을 하고싶지만
컴퓨터는 일치하는지 안하는지 "숫자" 만 인식할 수 있기 때문에
문자가 일치하는지 확인하기 위해서는 .equal() 메서드를 사용해주어야한다
if(gender.equals("M"))
= 변수 gender 의 값이 M 인경우에
외에 오늘 이진수 어쩌구 . . 진법변환 어쩌구 . . 쉬프트연산 어쩌구 . . 등등 많은 걸 배웠지만
이해하지못했기 때문에 적지 못했다
진법변환은.. 요즘 컴퓨터들이 다 해주는데 내가 진법변환 방법을 꼭 알아야할까 ? ..
그딴걸로 내 뇌의 '메모리' 를 '할당' 할 수 없다 ( 제법 개발자 같은발언 ~ good
쉬프트웅앵은 선생님께서 자주쓰진않는거니까 이런게 있구나 ~ 하면된다고하셨다
선생님의 말씀을 믿어보기로했다
'JAVA' 카테고리의 다른 글
| [JAVA] for 무한루프 / scope / (0) | 2022.02.14 |
|---|---|
| [JAVA] 중첩if / switch 문 / 반복문_for (0) | 2022.02.14 |
| [JAVA] 형변환 (0) | 2022.02.09 |
| [JAVA] 값 할당 / 변수자료형 / 자료형분류 / Escape Sequence (0) | 2022.02.08 |
| [JAVA] JAVA 실행과정 이해하기 / 자바코드의 구조 (0) | 2022.02.07 |