-
02.17 문자열 단위로 입력받는 응용객체, 연산자학원일지/class 2023. 2. 17. 13:14
review
read()는 in에서 읽어와야하는데 in이 비어있으니까 프롬트가 뜸(입력을 받도록)
->a를 입력하면 in에는 97이 들어옴 (a에 대한 아스키 값) -> 변수 code에는 97에 들어감
println은 out으로 보내줘야하는데 구십칠이 아니라 문자열 구칠로 바꿔줌.
구.칠에 해당하는 out에는 57.55가 저장됨 -> 화면에 97이 출력됨.
write는 97을 그냥 출력함. 버퍼에는 97이 그냥 들어감. 편집기가 문자리더기라면 읽으면 a로 나오고 숫자리더기로 읽으면 97로 나옴.
콘솔은 문자리더기이기때문에 a로 출력됨. *리더기에 따라서 wirite값이 바뀐다.
*int code에 변수가 저장 될 때,
*read()의 반환타입 : 1바이트만 읽음.
*write()의 반환타입 : 1바이트만 출력.
[ 문자열 단위로 입력받는 응용객체 ]
"ok_ok_12"
next() ->"ok"
nextLine() -> "ok_ok_12"
버퍼가 찼을때, 스페이스를 만날때까지 엔터를 만날때까지 읽어주는 것
단어단위로 읽어드릴꺼나 엔터를 만날때까지 읽어주는 방법.
nextLine() : 한 번에 읽어들인 전체를 다 읽음.
nextInt() :오공으로 읽어서 오십으로 바뀌는 것
nextFloat() : 실수를 읽어드리는..
자바는 함수만 쓰일 수 없음~
new Scanner (System. in) 를 이용하여 위의 함수들을 사용.
import java.util.Scanner;
import : 문서에서 스캐너를 쓸건데, 풀네임은 이것이다..를 위에 언급하는것
class앞에 쓰는 것들 : 패키지명. 식별하기 쉽게 패키지에 담는것... 패키지만 다르면 이름이 같아도 클래스명이 충돌하지 않음.
도메인이름을 거꾸로 써서
Scanner scan = new Scanner(System.in); System.out.print("kor1 : "); kor1 = scan.nextInt (); System.out.print("kor2 : "); kor2 = scan.nextInt (); System.out.print("kor3 : "); kor3 = scan.nextInt ();
total= kor1 + kor2 + kor3; avg = total / 3; System.out.println("┌─────────────────────────────────────────┐"); System.out.println("│ \\ \"성적 출력\" │"); System.out.println("└─────────────────────────────────────────┘"); System.out.printf("국어1 : %3d\n", kor1); System.out.printf("국어2 : %3d\n", kor2); System.out.printf("국어3 : %3d\n", kor3); System.out.printf("총점 : %3d\n", total); System.out.printf("평균 : %6.2f\n", avg);
-> 평균이 정수로만 나옴 (정수를 정수로 나누어서 정답값이 정수가 나옴)
total= kor1 + kor2 + kor3; avg = total / 3.0f; System.out.println("┌─────────────────────────────────────────┐"); System.out.println("│ \\ \"성적 출력\" │"); System.out.println("└─────────────────────────────────────────┘"); System.out.printf("국어1 : %3d\n", kor1); System.out.printf("국어2 : %3d\n", kor2); System.out.printf("국어3 : %3d\n", kor3); System.out.printf("총점 : %3d\n", total); System.out.printf("평균 : %6.2f\n", avg);
-> avg를 구하는 식에서 total 값을 실수값으로 나누어서 평균도 실수로 나올 수 있도록 함.
System.out.print("kor1 kor2 kor3 : ") kor1 = scan.nexInt (); kor2 = scan.nexInt (); kor3 = scan.nexInt ();
*한줄에 입력받기!
연산자
산술연산자(Operators)
단순 대입 연산자 : =
산술 연산자 : + - * / %
[ 산술연산 ]
1) 연산자 우선순위 : 연산식에는 우선순위가 있다~
2) 연산자와 자료형 : 10/3 과 10/3.0의 값이 다르다~ (묵시적인 형변환, 명시적인 형변환)
3) 나머지 연산자 : 7을 2로 나누었을 때, 몫(/)이 3, 나머지(%)가 1 / ex) 10%4=2
나머지 연산자를 통해서 얻고자 하는 것?
나머지 연산자의 사용 예
반복적인 패턴을 만들 때 많이 쓰임. 배분을 편하게 할 수 있음
ex) 사과를 나누어 주기
[단항 연산자]
양수 연산자 +1
음수 연산자 -1
증가 연산자 result++;
감소 연사자 result--;
부정 연사자 !success : 참이면 거짓, 거짓이면 참으로 바꿔주는 것.
단항연산자의 전위와 후위연산
++i : 값이 참조되기 전에 증가
i++: 값이 참조된 후에 증가
int i =3;
i++;
System.out. println(i); // 4
++i;
System.out.println(i); // 5
System.out.println(++i); // 6
System.out.println(i++); // 6 -> 6이 나오고 ++ (나온 값은6, 그 다음의 i 값이 7)
System.out.println(i);// 7
[비교/논리 연산자]
비교 연산자
== : 같다
!= : 같지 않다.
> : ~보다 크다
>= : ~보다 크거나 같다
< : ~ 보다 작다
<= : ~보다 작거나 같다
논리 연산자
&& : 교집합연산자
|| : 합집합 연산자
x는 2보다 작거나 같고, 4보다 크거나 같다
X<=2 X>=4
x<=2 || 4<=x
[비트 연산자]
비트 논리 연산자
& : 비트 교집합
| : 비트 합집합
^ : 비트 차집합
~ : 비트 부정
비트마다 연산해서 참참거짓을 연산하는 것..?
3&7 > 0011 & 0111 > 0011
5&4 > > 0100
[쉬프트 연산자]
<< 왼쪽 쉬프트
>> 오른쪽 쉬프트
오른쪽 쉬프트 주의사항
1001>>2 -> 1110
2의보수..? 비트값..
'학원일지 > class' 카테고리의 다른 글
02.21 제어구조, for문 (0) 2023.02.21 02.16 문자열 출력, 숫자 출력, 콘솔 입력 (0) 2023.02.16