210723(금) 자바 4일차 - 입출력 / if / switch
<입출력>
1. 직접입력
2. System.in.read();
3. Reader 클래스
4. Scanner 클래스
* 콘솔
-입력 : 키보드
-출력: 화면
버퍼는 속도 조절을 위해 존재한다
메모리가 딴짓하고 있을 때 열심히 받아 놓음
System.in.read(); 엔터는 밑으로 내려갔다가 맨 앞으로 동작하는 원리라서 두 번 비워줌
* 엔터가 출력되면 나오는 숫자 의미
b값이 없을 경우 엔터도 b로 가기 때문에 엔터 제거 작업 필요 flush
System.in.read();를 추가해서 지운다.
다음줄로 내려간다 \n 13
맨 앞으로 이동 \r 10
cf) System은 static 클래스라서 System.in 이렇게 쓸 수 있는 것~!!!!!
버퍼드리더 쓰는법
system.in 이나 inputstream이 근원지 - 인풋스트림리더-버퍼드리더 이렇게 길을 닦는 것이다
2번은 예외처리
<bit 연산자 - 0 or 1>
1. 1의 보수 연산자(bit NOT)
~0→1
~1→0
# 8421코드
# 음수의 경우에는 8421코드가 적용되지 않는다
# Java는 음수의 표현으로 2의보수(1의보수+1)를 사용한다
# 최상위 비트를 부호비트로 사용한다 (0:+, 1:-)
2. 논리연산자(bit)
AND OR XOR
X Y X&Y X|Y X^Y
0 0
0 1
1 0
1 1
[문제] 20^7
0xca & 18
3. shift연산자(bit연산자) - 이동연산자
1) 왼쪽shift (<<)
: 왼쪽으로 1칸 이동시마다 *2씩 커진다
: 빈공간은 0으로 채운다
2) 오른쪽shift (>>)
: 오른쪽으로 1칸 이동시마다 /2씩 작아진다
: 빈공간은 부호비트으로 채운다
3) 오른쪽shift (>>>)
: 빈공간은 0으로 채운다 - 양수화
지금의미없어서 수업 x
<if>
1. if(조건) 참일때;
↓ 거짓일때(다음문장 수행)
2. if(조건) 참일때;
else 거짓일때;
3. if(조건) 참일때; → 다중if문
else if(조건) 참일때;
else if(조건) 참일때;
else if(조건) 참일때;
else 거짓일때;
<switch>
: 실수형 타입은 쓸 수 없다 정수형만 가능 더블형 불가 int로 짤라야 함(반올림 안됨)
: break 는 switch를 벗어나라
[형식]
switch(정수 or 문자 or 문자열 or 식) {
case 값1: break;
case 값2: break;
case 값3: break;
default :
}
스위치는 값의 나열 break 걸어줘야 한다