(각 타입의 메모리 사용 크기)
// println() 메소드는 정수값을 무조건 10진수로 변환하여 출력한다.
System.out.println("정수값(10진수 100) = " + 100);
// 정수값(10진수 100) = 100
System.out.println("정수값(2진수 100) = " + 0b00);
// 정수값(2진수 100) = 0
System.out.println("정수값(8진수 100) = " + 0100);
// 정수값(8진수 100) = 64
System.out.println("정수값(16진수 100) = " + 0x100);
// 정수값(16진수 100) = 256
System.out.println("정수값(10진수 100) = " + 100L);
// 정수값(10진수 100) = 100
System.out.println("정수값 = " + 2147483648L);
// 정수값 = 2147483648
// 4Byte로 표현 불가능한 정수값은 [L]을 붙여 8Byte의 LongType의 정수값으로 작성하여 사용한다.
(각 타입의 메모리 사용 크기)
// println() 메소드는 실수값이 아주 작거나 큰 경우 지수형태로 변환하여 출력한다.
System.out.println("실수값(8Byte) = " + 0.000000000123);
// 실수값(8Byte) = 1.23E-10
System.out.println("실수값(8Byte) = " + 1.23E+10);
// 실수값(8Byte) = 1.23E10
float b1 = 1.23456789F;
// 가수부를 표현하기 위한 크기(정밀도) : 7자리
double b2 = 1.23456789;
// 가수부를 표현하기 위한 크기(정밀도) : 15자리
System.out.println("b1 = " + b1);
// b1 = 1.2345679
System.out.println("b2 = " + b2);
// b2 = 1.23456789
b1은 9가 반올림 되어 올라간 모습을 확인할 수 있다.
(메모리 사용 크기)
System.out.println("논리값(1Byte) = " + false);
// 논리값(1Byte) = false
System.out.println("논리값(1Byte) = " + true);
// 논리값(1Byte) = true
System.out.println("논리값(1Byte) = " + (20 < 10));
// 논리값(1Byte) = false
System.out.println("논리값(1Byte) = " + (20 > 10));
// 논리값(1Byte) = true
public static void main(String[] args) {
자료형[] 참조변수 = new 자료형[개수];
자료형 참조변수[] = new 자료형[개수];
자료형[] 참조변수 = new 자료형[] {초기값, 초기값, ...};
System.out.println(참조변수[i]);
// 참조변수의 i+1번째 값이 출력됨
}
=> new 자료형[개수] : 자료형의 값을 개수만큼 저장 가능한 메모리 할당
=> 자료형[] 참조변수 : 1차원 배열의 메모리 주소를 저장하기 위한 참조변수 생성
=> 1차원 배열에서 값을 저장하기 위한 메모리 공간을 요소(Element)로 표현
=> 배열의 요소는 첨자(index)를 이용하여 구분
=> 생성된 배열의 요소에는 기본값이 자동 저장
=> for 구문을 사용하여 배열 요소에 대한 일괄처리
public static void main(String[] args) {
for (자료형 변수명 : 참조변수) {
명령;
명령;
፧
}
}
=> 참조변수의 배열에 요소값을 커서(cursor)를 사용하여 차례대로 하나씩 얻어와 변수에 저장하여 일괄처리
=> 배열의 모든 요소값을 제공받은 후 반복문 종료
=> 계산, 출력에 대한 일괄 처리에 사용
public static void main(String[] args) {
자료형[][] 참조변수 = new 자료형[행 개수][열 개수];
자료형 참조변수[][] = new 자료형[행 개수][열 개수];
System.out.println(참조변수[i][j]);
// 참조변수의 (i+1)행 (j+1)열의 값이 출력됨
}
public static void main(String[] args) {
int[][] value = new int[3][];
System.out.println(value[0]);
System.out.println(value[1]);
System.out.println(value[2]);
// null
// null
// null
value[0] = new int[3];
value[1] = new int[2];
value[2] = new int[4];
// 1차원 배열의 요소의 개수를 다르게 생성하여 저장 가능
}
public static void main(String[] args) {
// 6개의 정수 난수값을 저장하기 위한 배열 생성
int[] lotto = new int[6];
// 1~45 범위의 정수난수를 6개 제공받아 배열 요소에 차례대로 저장
for (int i = 0; i < lotto.length; i++) {// 새로운 난수를 저장할 배열 요소의 표현한 첨자의 반복문
// 요소에 저장된 새로운 난수값을 기존 요소들의 난수값과 모두 비교하여 같은 값이
// 있는 경우 반복문이 이용하여 새로운 난수값을 다시 제공받아 저장
// => 새로운 난수값이 기존의 모든 난수값과 다른 경우 반복문 종료
while (true) {
// 1~45 범위의 정수난수를 제공받아 배열 요소에 저장
lotto[i] = (int) (Math.random() * 45) + 1;
// 중복상태를 저장하기 위한 변수 - false : 미중복, true : 중복
boolean result = false;
for (int j = 0; j < i; j++) {// 기존 난수값이 저장된 요소의 첨자를 표현하기 위한 반복문
if (lotto[i] == lotto[j]) {
result = true;
break;
}
}
// 새로운 난수값이 기준 난수값과 중복되지 않는 경우 while 구문 종료
if (!result)
break;
}
}
// 배열의 모든 요소값을 서로 비교하여 오름차순 정렬되도록 배열 요소값을 바꾸어 저장
// => 선택 정렬 알고리즘(Selection Sort Algorithm)을 사용하여 오름차순 정렬
for (int i = 0; i < lotto.length - 1; i++) {// 비교 요소의 첨자를 표현하는 반복문 : 0 ~ 끝-1
for (int j = i + 1; j < lotto.length; j++) {// 피비교 요소의 첨자를 표현하는 반복문 : 비교+1 ~ 끝
// lotto[i] : 비교 요소, lotto[j] : 피비교 요소
if (lotto[i] > lotto[j]) {
// 요소에 저장된 값을 서로 바꾸어 저장 - Swap
int temp = lotto[i];
lotto[i] = lotto[j];
lotto[j] = temp;
}
}
}
// 배열의 모든 요소값 출력
System.out.print("행운의 숫자 >> ");
for (int number : lotto) {
System.out.print(number + " ");
}
System.out.println();
}
public static void main(String[] args) {
// 사람들의 나이를 저장한 배열 생성하여 참조변수에 저장
int[] age = { 27, 16, 22, 36, 57, 60, 43, 23, 14, 29, 44, 52, 59, 51, 39, 33, 11 };
// 배열에 저장된 모든 사람들의 나이 평균을 계산하여 출력하세요.
int sum = 0;
int average = 0;
for (int i = 0; i < age.length; i++) {
sum += age[i];
}
average = sum / age.length;
System.out.println("모든 사람들의 나이 평균은 " + average + "세이다.");
}
}
public static void main(String[] args) {
// 배열에 저장된 사람들의 나이를 연령별로 구분하여 인원수를 계산하여 출력하세요.
// ex) 10대 = 3명
// 20대 = 4명
// ...
// 60대 = 1명
// count[0] - 60대, count[1] - 50대, count[2] - 40대, count[3] - 30대, count[4] - 20대, count[5] - 10대
int primeAge = 0;
for (int i = 0; i < age.length; i++) {
if (primeAge < age[i]) {
primeAge = age[i];
}
}
int countArray = primeAge / 10;
int[] count = new int[countArray];
for (int i = 0; i < age.length; i++) {
int temp = age[i] / 10;
int temp2 = primeAge / 10;
for (int j = 0; j < primeAge; j++) {
if (temp == temp2 - j) {
count[j]++;
}
}
}
for (int i = 0; i < count.length; i++) {
System.out.println(((i + 1) * 10) + "대 = " + count[count.length - 1 - i] + "명");
}
}