136p. 예제 5-1
import java.util.Arrays;
public class Ex_JS {
public static void main(String[] args) {
int[] iArr1 = new int[10];
int[] iArr2 = new int[10];
int[] iArr3 = {100, 95, 80, 70, 60};
char[] chArr = {'a', 'b', 'c', 'd'};
for (int i=0; i < iArr1.length ; i++) {
iArr1[i] = i + 1; //1부터 10까지 숫자를 순서대로 배열에 넣는다.
}
for (int i=0; i < iArr2.length ; i++) {
iArr2[i] = (int)(Math.random()*10) + 1; //1~10 사이 숫자를 랜덤으로 저장. 중복도 가능
}
for(int i=0; i < iArr1.length; i++) {
System.out.print(iArr1[i]+",");
}
System.out.println();
System.out.println(Arrays.toString(iArr2));
System.out.println(Arrays.toString(iArr3));
System.out.println(Arrays.toString(chArr));
System.out.println(iArr3);
System.out.println(chArr);
}
}
출력값:
1,2,3,4,5,6,7,8,9,10,
[4, 10, 10, 7, 9, 9, 3, 3, 2, 4]
[100, 95, 80, 70, 60]
[a, b, c, d]
[I@5ca881b5
abcd
//print 함수를 이용하여 출력했을때 문자와 정수의 출력값이 다르다. 문자는 제대로 출력되지만 정수는 배열과 다른값이 출력된다.
137p. 예제 5-2
public class Ex_JS {
public static void main(String[] args) {
int sum = 0;
float average = 0f; //정확한 값을 얻기 위해 실수로 형변환
int[] score = {100, 88, 100, 100, 90};
for (int i=0; i<score.length;i++) {
sum += score[i];
}
average = sum/(float)score.length; //실수로 값을 출력하기 위해 양변중 한변을 형변환을 해줌
System.out.println("총합 : " + sum);
System.out.println("평균 : " + average);
}
}
출력값:
총합 : 478
평균 : 95.6
138p. 예제 5-3
public class Ex_JS { //최대값과 최소값
public static void main(String[] args) {
int[] score = {79, 88, 91, 33, 100, 55, 95};
int max = score[0]; //배열의 첫번째 값으로 초기화 한다.
int min = score[0];
for(int i=1; i<score.length;i++) { //배열의 첫값으로 초기화했으므로, 두번째부터 읽기 위해 i=1로 초기화
if(score[i] > max) {
max = score[i];
} else if(score[i] < min) {
min = score[i];
}
}
System.out.println("최대값: " + max);
System.out.println("최소값: " + min);
}
}
출력값:
최대값: 100
최소값: 33
139p. 예제 5-4
import java.util.Arrays;
public class Ex_JS { //shuffle(섞기)
public static void main(String[] args) {
int[] numArr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
System.out.println(Arrays.toString(numArr));
for (int i=0; i < 100; i++ ) { //100번 반복한다.
int n = (int)(Math.random()*10); //0~9중 한 값을 임의로 얻는다.
int tmp = numArr[0]; // 서로 값을 바꾸기 위한 빈 그릇 생성, 빈 그릇에 numArr배열의 첫번째 값을 저장
numArr[0] = numArr[n]; //랜덤으로 추출한 n번째 값을 numArr배열의 첫번째 칸에 저장한다.
numArr[n] = tmp; //tmp에 저장해둔 numArr배열의 첫번째 값을 numArr배열의 n번째 칸에 넣는다.
//위 과정을 100번 반복한다.
}
System.out.println(Arrays.toString(numArr));
}
}
출력값:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 7, 9, 8, 1, 6, 0, 3, 4, 5]
140p. 예제 5-5
public class Ex_JS { //로또번호 만들기
public static void main(String[] args) {
int[] ball = new int[45]; //45개의 정수값을 저장하기 위한 배열 생성
for(int i=0; i <ball.length; i++)
ball[i] = i+1;
int tmp = 0;
int j = 0;
for(int i=0; i < 6; i++) {
j =(int)(Math.random()*45);
tmp = ball[i];
ball[i] = ball[j];
ball[j] = tmp;
}
for(int i=0; i < 6; i++)
System.out.printf("ball[%d]=%d%n", i, ball[i]);
}
}
출력값:
ball[0]=3
ball[1]=5
ball[2]=23
ball[3]=30
ball[4]=41
ball[5]=12
142p. 예제 5-6
public class Ex_JS {
public static void main(String[] args) {
String[] names = {"Kim", "Park", "Yi"};
for(int i=0; i <names.length; i++)
System.out.println("names["+i+"]:"+names[i]);
String tmp = names[2];
System.out.println("tmp:"+tmp);
names[0] = "Yu";
for(int i=0; i < names.length;i++)
System.out.println(names[i]);
}
}
출력값:
names[0]:Kim
names[1]:Park
names[2]:Yi
tmp:Yi
Yu
Park
Yi
145p. 예제 5-7
public class Ex_JS {
public static void main(String[] args) {
System.out.println("매개변수의 개수:"+args.length);
for(int i=0;i<args.length;i++) {
System.out.println("args[" + i + "] = \""+ args[i] + "\"");
}
}
}
출력값:
매개변수의 개수:3
args[0] = "abc"
args[1] = "213"
args[2] = "Hello world"
-Scanner클래스의 nextLine()외 사용자로부터 값을 입력받을 수 있는 방법임.
-이클립스는 Run 탭에서 Arguments에 커맨드라인 매개변수를 입력해야한다.
-공백으로 구분하므로 공백이 포함된 문자열은 ""로 감싸준다.
-숫자도 문자열로 처리된다
-해당 문자열은 args[]배열에 저장된다
-커맨드라인 매개변수를 입력하지 않으면 크기가 0인 배열이 생성됨
150p. 예제 5-8
public class Ex_JS {
public static void main(String[] args) {
int[][] score = {
{ 100, 100, 100 },
{ 20, 20, 20 },
{ 30, 30, 30 },
{ 40, 40, 40 }
};
int sum = 0;
for (int i=0; i < score.length; i++) {
for (int j=0; j < score[i].length; j++) {
System.out.printf("score[%d][%d]=%d%n", i, j, score[i][j]);
sum += score[i][j];
}
}
System.out.println("sum="+sum);
}
}
출력값:
score[0][0]=100
score[0][1]=100
score[0][2]=100
score[1][0]=20
score[1][1]=20
score[1][2]=20
score[2][0]=30
score[2][1]=30
score[2][2]=30
score[3][0]=40
score[3][1]=40
score[3][2]=40
sum=570
151p. 예제 5-9
public class Ex_JS {
public static void main(String[] args) {
int[][] score = {
{100, 100, 100},
{20, 20, 20},
{30, 30, 30},
{40, 40, 40},
{50, 50, 50},
};
int korTotal = 0, engTotal = 0, mathTotal = 0;
System.out.println("번호 국어 영어 수학 총점 평균 ");
System.out.println("============================");
for(int i=0; i < score.length;i++) {
int sum = 0;
float avg = 0.0f;
korTotal += score[i][0];
engTotal += score[i][1];
mathTotal += score[i][2];
System.out.printf("%3d", i+1);
for (int j=0; j < score[i].length; j++) {
sum += score[i][j];
System.out.printf("%5d", score[i][j]);
}
avg = sum/(float)score[i].length;
System.out.printf("%5d %5.1f%n", sum, avg);
}
System.out.println("============================");
System.out.printf("총점:%3d %4d %4d%n", korTotal, engTotal, mathTotal);
}
}
출력값:
번호 국어 영어 수학 총점 평균
============================
1 100 100 100 300 100.0
2 20 20 20 60 20.0
3 30 30 30 90 30.0
4 40 40 40 120 40.0
5 50 50 50 150 50.0
============================
총점:240 240 240
152p. 예제 5-10
import java.util.Scanner;
public class Ex_JS {
public static void main(String[] args) {
String[][] words = {
{"chair", "의자"},
{"computer", "컴퓨터"},
{"integer", "정수"}
};
Scanner scanner = new Scanner(System.in);
for (int i=0; i < words.length;i++) {
System.out.printf("Q%d. %s의 뜻은?", i+1, words[i][0]);
String tmp = scanner.nextLine();
if(tmp.equals(words[i][1])) {
System.out.printf("정답입니다.%n%n");
} else {
System.out.printf("틀렸습니다. 정답은 %s입니다.%n%n", words[i][1]);
}
}
}
}
출력값:
Q1. chair의 뜻은?몰?루
틀렸습니다. 정답은 의자입니다.
Q2. computer의 뜻은?컴퓨터
정답입니다.
Q3. integer의 뜻은?정수
정답입니다.