* 자바의 정석 공부 및 배열에 관한 연습문제 풀이
int[] arr = new int[]{1,2,3,4,5}에서는 대괄호[]안에 배열의 크기를 지정할 수 없다.
int[][] arr = {
{5,5,5,5,5},
{10,10,10},
{20,20,20,20}
{30,30}
};
arr[3].length 는 3열{30,30}이 가리키는 배열의 크기를 의미함으로 2.
class Exercise5_3
{
public static void main(String[] args)
{
int[] arr = {10, 20, 30, 40, 50};
int sum = 0;
for(int i=0;i<arr.length;i++) {
sum += arr[i];
}
System.out.println("sum="+sum);
}
}
class Exercise5_4
{
public static void main(String[] args)
{
int[][] arr = {
{ 5, 5, 5, 5, 5},
{10,10,10,10,10},
{20,20,20,20,20},
{30,30,30,30,30}
};
int total = 0;
float average = 0;
/*
(1)알맞은 코드를 넣어 완성하시오.
*/
average = total /(float)(arr.length * arr[0].length);
System.out.println("total="+total);
System.out.println("average="+average);
} // end of main
} // end of class
- int (4 byte) int . 형 보다 크기가 작은 자료형은 형으로 형변환 후에 연산을 수행한다
byte / short → int / int -> int- . 두 개의 피연산자 중 자료형의 표현범위가 큰 쪽에 맞춰서 형변환 된 후 연산을 수행한다
int / float -> float / float -> float- 정수형 간의 나눗셈에서 0으로 나누는 것은 금지되어 있다.
참고 Math.random()을 사용했기 때문에 실행결과와 다를 수 있다.
class Exercise5_5 {
public static void main(String[] args) {
int[] ballArr = {1,2,3,4,5,6,7,8,9};
int[] ball3 = new int[3];
// ballArr . 배열 의 임의의 요소를 골라서 위치를 바꾼다
for(int i=0; i< ballArr.length;i++) {
int j = (int)(Math.random() * ballArr.length);
int tmp = 0;
/*
(1)알맞은 코드를 넣어 완성하시오.
*/
}
// ballArr 3 ball3 . 배열 의 앞에서 개의 수를 배열 로 복사한다
/* (2) */
for(int i=0;i<ball3.length;i++) {
System.out.print(ball3[i]);
}
System.out.println();
} // end of main
} // end of class
1~9 , 의 숫자를 배열에 순서대로 담고 반복해서 위치를 서로 바꿈으로써 숫자를 섞는다.
그 다음에 배열의 세 요소를 차례대로 가져오면 중복되지 않은 세 개의 정수를 얻을 수 있다. 책 140p 참조
import port java.util.Scanner;
class Exercise5_6 {
public static void main(String args[]) {
String[] words = { "television", "computer", "mouse", "phone" };
Scanner scanner = new Scanner(System.in);
for(int i=0;i<words.length;i++) {
char[] question = words[i].toCharArray(); // String char[] 을 로 변환
/*
(1) 알맞은 코드를 넣어 완성하시오.
char 배열 question에 담긴 문자의 위치를 임의로 바꾼다.
*/
System.out.printf("Q%d. %s의 정답을 입력하세요.>",
i+1, new String(question));
String answer = scanner.nextLine();
// trim() answer , equals word[i] 으로 의 좌우 공백을 제거한 후 로 와 비교
if(words[i].equals(answer.trim()))
System.out.printf("맞았습니다 .%n%n");
else
System.out.printf("틀렸습니다.%n%n");
}
} // main의 끝
}
실행결과