(2021.01.10)
자바의 연산자 부분도 C언어랑 크게 다른 부분이 없었다.
C공부했으면 이 부분은 그냥 패스해도 될듯... 합니다
book.naver.com/bookdb/book_detail.nhn?bid=10191151
참고도서: 자바의 정석
연산자 (operator)
연산자 : 연산자를 수행하는 기호
피연산자 : 연산자의 작업 대상 ( 변수, 상수, 리터럴, 수식)
연산자의 종류
종류 | 연산자 |
산술 연산자 | 사칙 연산자: +, -, *, / |
나머지 연산자: % | |
비교 연산자 | 대소비교 연산자: >, <, >=, <= |
등가비교 연산자: ==, != | |
논리 연산자 | 논리 연산자: &&, ||, ! |
비트 연산자: &, |, ^, ~, <<, >> | |
단항 연산자 | 증감 연산자: ++, -- |
부호 연산자: +, - | |
그 외 연산자 | 조건 연산자: ? : |
대입 연산자: =, op= |
연산자 역시 c언어와 동일하다.
▷ 비트 전환 연산자 : ~
비트 전환 연산자는 0을 1로, 1을 0으로 바꾼다.
--> 피연산자의 '1의 보수'를 얻을 수 있다.
양의 정수 p가 있을 때, p의 음의 정수 = ~p+1
음의 정수 p가 있을 때, p의 양의 정수 = ~(n-1)
조건문 : if, switch
if 문
if (조건식) {
// 조건식이 참일 때 수행할 문장
}
{ } 를 블럭 이라고 한다.
{ }을 쓰지 않을 때에는 한문장만 if문으로 속해지기 때문에 유의해야한다.
if (score > 90)
System.out.println("합격!!");
System.out.println("축하!!");
이런 코드에서 System.out.println("축하!!"); 는 if 문에 속하지 않는다.
if - else if - else 문
if (조건식 1) {
// 조건식 1의 결과가 참일 때 수행할 문장
} else if (조건식 2) {
// 조건식 2의 결과가 참일 때 수행할 문장
} else if (조건식 3) {
// 조건식 3의 결과가 참일 때 수행할 문장
} ... {
...
} else {
// else 블럭은 생략가능. 보통 else블럭으로 끝남.
}
switch 문
switch (조건식) {
case 값1:
// 조건식의 결과가 값 1일 때 수행할 문장
// ...
break;
case 값2:
// 조건식의 결과가 값 2일 때 수행할 문장
// ...
break;
// ...
default:
// 조건식의 결과와 일치하는 case문이 없을 때 수행할 문장
// ...
}
switch 문의 제약조건
1. switch 문의 조건식 결과는 정수 또는 문자열이어야한다. 2. case 문의 값은 정수, 상수만 가능하며, 중복되지 않아야한다. |
반복문 : for, while, do-while
for 문
for (초기화;조건식;증감식) {
수행할 문장
}
for 문 역시 c와 같은 구조이다.
while 문
while (조건식) {
// 조건식의 결과가 참일 동안 반복할 문장
}
while 문도 c언어와 같은 구조이다.
for 문은 조건식이 없어도 가능했지만, while 문은 조건문을 생략할 수 없다.
do-while 문
do-while 문은 while 문의 변형이다.
조건식이 맨 밑으로 가있다는 점이 다르다.
--> 조건문이 반드시 한번은 시행된다.
do {
// 조건식의 연산결과가 참일 때 수행할 문장
} while (조건식);
while (조건식) 뒤에 ; 을 빼먹지 않도록 유의해야한다.
위의 while 문과 비교해보면, 7- java 공부중... 이 맨위에 출력된 것이 다름을 알 수 있다.
일단 처음에 do-while 문안의 코드를 한 번 시행해주기 때문이다.
break 문
이것도 c언어에서 공부했던 것과 같은 맥락이다.
break는 자신이 포함된 가장 가까운 반복문을 벗어난다.
continue 문
이것도 c언어와 같은 맥락이다.
continue 문은 반복문 내에서만 사용할 수 있고, 반복문의 끝으로 가게 해준다.
반복문을 벗어나는 것은 아니다.
이름 있는 반복문
java에서는 반복문에 이름을 지정할 수 있다.
break문이 근접한 단 하나의 반복문만 벗어나기 때문에 여러개의 반복문이 있을 경우에 필요하다.
첫 번째 if 문 안의 break는 for문을 벗어나기 떄문에 다시 while문에 의해 for문으로 들어가서 i=0부터 시작하고, 다시 i가 2가 되면 for 문을 벗어나서 while문 처음으로 진입하게 된다. 그래서 이름 있는 반복문, 0, 1, 2 순서대로 반복된다.
두 번째 if 문 안의 break java는 java라는 while문을 벗어나게 하기 때문에 프로그램이 종료된다. 하지만 위의 코드로는 i가 4까지 올라가는 일이 없어서 프로그램은 계속 반복해서 돌아가게 된다.
사실 내가 한 번 만들어본건데... 처음에는 프로그램이 안 멈춰서 놀랐다... 이러려고 만든 코드는 아니었지만 어쩌다보니까 이렇게 나왔다...
개념부분이어서 그렇기도 하고 책도 2,3,4장이나 읽어야해서 조금 힘들었다.... 4장은 거의 휘리릭 넘긴 수준이라서 다음주에 다시 천천히 읽어볼 계획이다...
'Coding > Java' 카테고리의 다른 글
[Java] 백준 10430번: 나머지 (1) | 2021.01.15 |
---|---|
[Java] Resource leak: 'scanner' is never closed 자바 경고와 해결방법 (2) | 2021.01.15 |
[Java] 변수 (variable) (2) | 2021.01.10 |
[Java] 표준입출력 (0) | 2021.01.01 |
[Java] 이클립스 설치하기 (0) | 2020.12.30 |