[Java의 정석] Chapter 02 변수 예제 #1
Java의 정석 21page
변수의 선언과 초기화 관련
예제 2-1 VarEx1
(1) int 타입 변수 year을 0으로 초기화/선언
(2) int 타입 변수 age을 14로 초기화/선언
(3) println()을 이용하여 변수 year과 age에 저장된 값을 콘솔에서 확인
(4) year에 age에 2000을 더한 값을 할당
(5) age에 기존 값에 1을 더한 값을 할당
(6) println()을 이용하여 변수 year과 age에 저장된 바뀐 값을 콘솔에서 확인
[실행결과]
0
14
2014
15
▼ 나의 풀이
public class VarEx1 {
public static void main(String[] args) {
int year = 0;
int age = 14;
System.out.println(year);
System.out.println(age);
year = age + 2000;
age = age + 1; // age += 1; 또는 age++; 가능
System.out.println(year);
System.out.println(age);
}
}
Java의 정석 24page
변수의 선언과 초기화 관련
예제 2-2 VarEx2
(1) int 타입 변수 x에 10을, 같은 타입 변수 y에 20을 초기화/선언
(2) int 타입 변수 tmp에 0을 초기화/선언
(3) println()을 이용하여 변수 x, y에 저장된 값 콘솔에서 확인
(4) 변수 tmp를 이용하여 x와 y값 교환
(5) println()을 이용하여 변수 x, y값 콘솔에서 확인
[실행결과]
x: 10, y: 20
x: 20, y: 10
▼ 나의 풀이
public class VarEx2 {
public static void main(String[] args) {
int x = 10, y = 20;
int tmp = 0;
System.out.println("x: " + x + ", y: " + y);
tmp = x;
x = y;
y = tmp;
System.out.println("x: " + x + ", y: " + y);
}
}
Java의 정석 35page
변수의 타입 (문자열) 관련
예제 2-3 StringEx
(1) String 타입 변수 name에 "Ja"와 "va"를 결합하여 초기화/선언
(2) String 타입 변수 str에 변수 name의 값과 8.0 결합하여 초기화/선언
(3) println()을 이용하여 변수 name, str에 저장된 값 콘솔에서 확인
(4) println()을 이용하여 실행결과와 같이 아래의 문자열 결합 결과 콘솔에서 확인
- 7 + " "
- " " + 7
- 7 + ""
- "" + 7
- "" + ""
- 7 + 7 + ""
- "" + 7 + 7
[실행결과]
Java
Java8.0
7
7
7
7
14
77
▼ 나의 풀이
public class StringEx {
public static void main(String[] args) {
String name = "Ja" + "va";
String str = name + 8.0;
System.out.println(name);
System.out.println(str);
System.out.println(7 + " ");
System.out.println(" " + 7);
System.out.println(7 + "");
System.out.println("" + 7);
System.out.println("" + "");
System.out.println(7 + 7 + "");
System.out.println("" + 7 + 7);
}
}
Java의 정석 37page
형식화된 출력 prinf() 관련
예제 2-4 PrintfEx1
(1) byte 타입 변수 b에 1을 초기화/선언
(2) short 타입 변수 s에 2를 초기화/선언
(3) char 타입 변수 c에 'A'를 초기화/선언
(4) int 타입 변수 finger에 10을 초기화/선언
(5) long 타입 변수 big에 100_000_000_000L을 초기화/선언
(6) long 타입 변수 hex에 0 xFFFF_FFFF_FFFF_FFFFL을 초기화/선언
(7) int 타입 변수 octNum에 8진수 10인 010 초기화/선언
(8) int 타입 변수 hexNum에 16진수 10인 0x10 초기화/선언
(9) int 타입 변수 binNum에 2진수 10인 0b10 초기화/선언
(10) prinf()를 이용하여 실행결과와 같이 1~9의 변수에 저장된 값 콘솔에서 확인
[실행결과]
b=1
s=2
c=A, 65
finger=[ 10]
finger=[10 ]
finger=[00010]
big=100000000000
hex=0xfffffffffffffff
octNum=10, 8
hexNum=10, 16
binNum=10, 2
▼ 나의 풀이
public class PrintfEx1 {
public static void main(String[] args) {
byte b = 1;
short s = 2;
char c = 'A';
int finger = 10;
long big = 100_000_000_000L;
long hex = 0xFFF_FFFF_FFFF_FFFFL;
int octNum = 010;
int hexNum = 0x10;
int binNum = 0b10;
System.out.printf("b=%d%n", b);
System.out.printf("s=%d%n", s);
System.out.printf("c=%c, %d %n", c, (int)c);
System.out.printf("finger=[%5d]%n", finger);
System.out.printf("finger=[%-5d]%n", finger);
System.out.printf("finger=[%05d]%n", finger);
System.out.printf("big=%d%n", big);
System.out.printf("hex=%#x%n", hex);
System.out.printf("octNum=%o, %d%n", octNum, octNum);
System.out.printf("hexNum=%x, %d%n", hexNum, hexNum);
System.out.printf("binNum=%s, %d%n", Integer.toBinaryString(binNum), binNum);
}
}
Java의 정석 38page
형식화된 출력 prinf() 관련
예제 2-5 PrintfEx2
(1) String 타입 변수 url에 www.codechobo.com 초기화/선언
(2) float 타입 변수 f1에 .10f 초기화/선언
(3) float 타입 변수 f2에 1e1f 초기화/선언
(4) float 타입 변수 f3에 3.14e3f 초기화/선언
(5) double 타입 변수 d에 1.23456789 초기화/선언
(6) prinf()를 이용하여 실행결과와 같이 1~5 변수에 저장된 값 콘솔에서 확인
[실행 결과]
f1=0.100000, 1.000000e-01, 0.100000
f2=10.000000, 1.000000e+01, 10.0000
f3=3140.000000, 3.140000e+03, 3140.00
d=1.234568
d= 1.2345678900
[12345678901234567890]
[www.codechobo.com]
[ www.codechobo.com]
[www.codechobo.com ]
[www.code]
▼ 나의 풀이
public class PrintfEx2 {
public static void main(String[] args) {
String url = "www.codechobo.com";
float f1 = .10f;
float f2 = 1e1f;
float f3 = 3.14e3f;
double d = 1.23456789;
System.out.printf("f1=%f, %e, %g%n", f1, f1, f1);
System.out.printf("f2=%f, %e, %g%n", f2, f2, f2);
System.out.printf("f3=%f, %e, %g%n", f3, f3, f3);
System.out.printf("d=%f%n", d);
System.out.printf("d=%14.10f%n", d);
System.out.printf("[12345678901234567890]%n");
System.out.printf("[%s]%n", url);
System.out.printf("[%20s]%n", url);
System.out.printf("[%-20s]%n", url);
System.out.printf("[%.8s]%n", url);
}
}
★ 암기 부족한 부분
- printf()의 지시자: boolean %b, decimal(10진) %d, octal(8진) %o, hexa-decimal(16진) %x,
floating-point(부동소수점) %f, character %c, string %s
- printf()의 지시자 중 binary(2진)은 없기 때문에
Integer.toBinaryString()을 이용하여 문자열로 변환하여 %s로 값을 확인한다.
- 소수 넷째 자리까지 %.4f, 왼쪽에서 네 번째 글자까지 %.4s