Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 회고록
- Diary 해우소
- 생성자
- 포맷은 최후의 보루
- #스파르타내일배움캠프TIL
- #스파르타내일배움캠프
- GitHub
- Java의 이점
- 감사기록
- 해우소
- diary
- TiL_1st_0419
- 성장기록
- 객체지향 언어
- Java
- JVM
- 스파르타내일배움캠프
- static
- KPT
- 클래스
- Token
- #내일배움캠프
- 스레드
- 내일배움캠프
- 인스턴스
- 메서드
- Git
- 변수의 다양성
- 스파르타내일배움캠프TIL
- Github_token
Archives
- Today
- Total
몬그로이
Java 코드 해석 본문
p. 37 ◈ 2진수로 표현된 리터럴을 2진수로 출력하기
int binNum = 0b10; //2진수로 표현된 리터럴이 정수타입의 변수에 담김
//0b는 10이 2진수로 표현되었음을 나타내는 뜻이며, binNum에는 10진수로 저장됨
System.out.printf("binNum = %s, %d%n", Integer.toBinaryString(binNum), binNum);
//2진수 상태로 출력하고 싶으나 지시자가 없어 불가능함
//%b는 boolean 형식으로 출력하라는 뜻이므로 2진수로 출력되지 않음
//문자열 상태로 바꿔서 문자로 출력하기
//toBinayString 메서드를 사용하면 10진수를 2진수로 변환하여 그대로 문자열 리터럴이 되게 함
//변환된 값을 지시자 %s를 통해 문자그대로 출력함
p. 40 ◈ 화면에서 입력받기 (스캔하여 변수에 저장하기)
Scanner scanner = new Scanner(System.in); //스캐너 클래스 -의 객체 생성
System.out.print("입력해달라는 내용")
/*
뭔가 입력해달라 요청을 내보낼 것이므로 out사용 - 스캐너는 입력받은 걸 스캔하는 기능이니 입력받자
큰 따옴표 적지 않으면 구동되지 않음
멈춘건지 입력받으려고 기다리는 건지 구별이 되어야 하니까 큰따옴표 안에 입력해달라는 내용을 적어놓자
*/
String input = scanner.nextLine(); //스캐너를 통해 입력받은 값을 input(String타입)에 저장
//여기까지 작성해야 입력가능함 ★
/*
출력된 부분 다음부터 읽으니까 next가 붙었고
엔터 전까지인 줄을 읽는 거니까 Line이 붙어서 nextLine인 듯
*/
//아래부터는 입력받은 걸 가지고 조작하는 부분
int num = Integer.parseInt(input); //input을 integer 타입으로 분석해(변환해)서 num(int타입)에 저장
/*
int num = Floating.parseFloat(input);
을 입력하면 Float타입으로 분석해서 num(Float타입)에 저장할 수 있음
*/
int num = scanner.nextInt(); //를 사용하면 변환과정 없이 바로 num에 입력 받을 수 있음 (위 두 줄 합친 것)
int num = scanner.nextFloat(); //도 마찬가지
/*
단 위 방법들은 연속적 값을 받아 사용하기 까다로움
모두 nextLine()으로 받아 적절히 변환시키는 것이 나음 - 즉, 처음 알려준 방식이 나음
*/
p. 38 ◈ 실수형 리터럴을 가진 변수들 변환하여 출력하기
float f1 = .10f;
System.out.printf("f1 = %f, %e, %g%n", f1, f1, f1);
/*
f1 = 0.100000, 1.000000e-01, 0.100000
.10 = 0.1
%f는 f1을 소수점 아래 6자리까지(7째 자리에서 반올림) >> 0.100000
%e는 f1을 지수형태로
0.1*10^1 = 1이고, 지수부분은 두 자리수로 나타내므로 >> 1.000000e-01
%g는 큰 숫자나 작은 숫자는 지수형식으로, 이외엔 일반적인 모습으로 >> 0.100000
큰 숫자는 10의 7승 이상, 작은 숫자는 10의 -3승 이하
*/
float f2 = 1e1f;
System.out.printf("f2 = %f, %e, %g", f2, f2, f2);
/*
f2 = 10.000000, 1.000000e+01, 10.0000
1e1 = 1*10^1 = 10
%f는 소수점 아래 6째 자리까지(7째 자리에서 반올림) >> 10.000000
%e는 f2를 지수형태로 나타내게 함
10 = 10^1이며 지수는 2자리수로 표현됨 >> 1.000000e+01
%g는 10의 -3승보다 크고 10의 7승보다 작으므로 일반적 형태로 나타냄
대신 6개의 유효숫자로 표기 >> 10.0000
*/
float f3 = 3.14e3f;
System.out.printf("f3 = %f, %e, %g", f3, f3, f3);
/*
f3 = 3140.000000, 3.140000e+03, 3140.00
3.14e3 = 3.14 * 10^3 = 3140
%f는 소수점 6번째 자리까지 >> 3140.000000
%e는 지수형태로 나타냄
소수점 6번째 자리까지 표현하고 지수는 두 자리수로 표현>> 3.140000e03
%g는 340이 10의 -3승보다 크고 10의 7승보다 작으므로 일반형으로 나타냄
대신 6개의 유효숫자 있어야 함 >> 3140.00
*/
double d = 1.23456789;
System.out.printf("d = %14.10f%n", d);
/*
d = 1.2345678900
%f로 나타내면 1.234568이지만
14.10의 의미: 점 포함하여 총 14칸으로 표현하고, 소수점 아래 10자리 까지 표현하기
7번째 자리에서 반올림 하기 전에 자릿수를 맞춘다
1.2345678900 은 소수점 아래 10자리는 맞지만 전체는 12자리임
14자리에 맞추려면 앞에 두 칸 더 있어야 함 >> d = 1.2345678900
/*
String url = "www.codechobo.com";
System.out.printf("[%s] %n", url);
/*
[www.codechobo.com]
*/
System.out.printf("[%20s]%n",url);
/*
[ www.codechobo.com]
20칸 출력공간 확보하여 우측 정렬
점 포함하여 17칸이므로 왼쪽에 3칸 비워진 것
참고로 url에 숫자가 포함되어 있더라도 에러 없이 출력됨
*/
System.out.printf("[%-20s]%n",url);
/*
[www.codechobo.com ]
20칸 출력 공간 확보하여 좌측 정렬
*/
System.out.printf("[%.8s]%n",url);
/*
[www.code]
url의 왼쪽부터 8칸만 출력
url에 스페이스(빈칸)입력이 되어 있어도 적용됨
*/