-
02.16 문자열 출력, 숫자 출력, 콘솔 입력학원일지/class 2023. 2. 16. 13:41
review
자바에서는 값은 정수, 실수, 문자, 부울을 기본 형식으로 가지고 있다. 그렇다면 문자는 숫자로 표현된다?
-> 맞음.
문자형태의 코드를 출력하거나 입렬할 때, 버퍼를 이용하는 이유.
: 출력하고자 하는 어플리케이션들이 동기적인 방식에서 비동기적인 방식으로 처리할 수 있도록 하기 위함.
출력스트림의 실질적인 이름은 OutputStream. 이것은 명칭.
-> 개체명
개체는 메뉴명(종류명, 타입명)이고 객체는 그것을 생성(주문)한 결과물이 객체이다.
flush()가 하는 역할과 필요성?
: 출력스트림이 꽉 차면 스트림에 있는 데이터는 자동으로 일괄출력 됨. 하지만 꽉 차지 않은 상태에서 출력하기 위해서는 직접 flush를 통해서 출력할 수 있다.
문자열 출력
[문자를 출력하는 도구]
System.out.write(3);
System.out.write(4);
""로 감싼 기호 -> 문자열
new OutputStream()
print() -> 123=> "123" 숫자를 문자열로 바꾸어줌
new-> 동작에서의 주문
new PrintStream ( new OutputStream() )
[이스케이프 문자]
문자열 사이에 꽂아 넣을 수 있는 명령어
\n
\"
\\
[실습]
System.out.print("┌─────────────────────────────────────────┐\n"); System.out.print("│ │\n"); System.out.print("│ \\ \"성적 출력\" │\n"); System.out.print("│ │\n"); System.out.print("└─────────────────────────────────────────┘\n"); System.out.print("국어1 : 0\n"); System.out.print("국어2 : 0\n"); System.out.print("국어3 : 0\n"); System.out.print("총점 : 0\n"); System.out.print("평균 : 0.00\n"); System.out.print("──────────────────────────────────────────");
[개행 문자(\n)가 포함된 출력]
System.out.println()
System.out.println("┌─────────────────────────────────────────┐"); System.out.println("│ │"); System.out.println("│ \\ \"성적 출력\" │"); System.out.println("│ │"); System.out.println("└─────────────────────────────────────────┘"); System.out.print("국어1 : 0\n"); System.out.print("국어2 : 0\n"); System.out.print("국어3 : 0\n"); System.out.print("총점 : 0\n"); System.out.print("평균 : 0.00\n"); System.out.print("──────────────────────────────────────────");
println -> 값을 꽂아 넣을 수가 없다.
[숫자 출력]
출력의 포맷이 있음. 포맷을 만들어 넣고 값(숫자)를 꽂아 넣는 것
System.out.printf
%d : 값을 대신 하는 녀석-> 형식을 지정하는 것. 10진수.
class FirstProgram{ public static void main(String[] arg){ int kor1, kor2, kor3; int total; float avg; kor1 = 50; kor2 = 60; kor3 = 80; total=kor1+kor2+kor3; avg = total / 3; System.out.println("┌─────────────────────────────────────────┐"); System.out.println("│ │"); System.out.println("│ \\ \"성적 출력\" │"); System.out.println("│ │"); System.out.println("└─────────────────────────────────────────┘"); System.out.printf("국어1 : %d\n", kor1); System.out.printf("국어2 : %d\n", kor2); System.out.printf("국어3 : %d\n", kor3); System.out.print("총점 : 0\n"); System.out.print("평균 : 0.00\n"); System.out.print("──────────────────────────────────────────");
System.out.printf (%d\n, 'A') ->에러
System.out.printf (%d\n, 'A'+1) -> 가능
*%뒤에는 출력하는 형식을 지정할 수 있다!
[출력 형식]
/포맷 문자열과 형식지정자/
d f c s
문자를 포맷팅하는 내용 문자의 출력과 상관 없이 사용되니, 이해 및 암기 할 것.
[형식지정자 옵션]
/고정길이 출력하기/
값에 따라 자리수가 줄어들기 때문에, 박스가 들쑥날쑥하게 됨.
-> 값이 달라지더라도 출력되는 영역이 달라지면 안되겠음.
/변환 코드/
percision : 정밀도
Argument Index : n$ -> 몇 번째 값을 쓰겠다는 지정을 하는 것
class FirstProgram{ public static void main(String[] arg){ int kor1, kor2, kor3; int total; float avg; kor1 = 50; kor2 = 60; kor3 = 80; total= kor1 + kor2 + kor3; avg = total / 3; System.out.println("┌─────────────────────────────────────────┐"); System.out.println("│ │"); 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); System.out.print("──────────────────────────────────────────");
콘솔 입력
[InputStream과 객체 생성]
키보드가 입력 받는 것-> 입력 버퍼 , 입력 스트림
read(), skip()
읽어온 문자가 코드로 담겨짐 -> 코드 값으로 프린트하면 65육십오가 65육오로 프린트.
*구분선을 넣기 -> 주석을 이용하여 넣기 : //
*여러라인의 주석을 만들기 : */ ~ /*
read : 하나의 코드를 입력 버퍼에서 문자를 읽어오는 것
블럭킹되었다 -> 입력을 기다리는 것
read를 블럭킹 함수, 블럭 함수라고 한다.
import java.io.IOException; class FirstProgram{ public static void main(String[] arg) throws IOException{ int kor1, kor2, kor3; int total; float avg; kor1 = 50; kor2 = 60; kor3 = 80; System.out.print("입력 :"); int code = System.in.read(); System.out.println(code); System.out.write(code); System.out.flush();
실행하여 a를 입력할 시에 콘솔창에는 아래와 같이 출력 됨 :
97
a
참고한 archive
https://blog.naver.com/ahyej29/222235094397
'학원일지 > class' 카테고리의 다른 글
02.21 제어구조, for문 (0) 2023.02.21 02.17 문자열 단위로 입력받는 응용객체, 연산자 (0) 2023.02.17