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 | 29 | 30 | 31 |
Tags
- 자바의 정석 기초편 ch12
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch7
- 타임리프 - 기본기능
- 자바의 정석 기초편 ch9
- 스프링 고급 - 스프링 aop
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch11
- 자바의 정석 기초편 ch3
- 2024 정보처리기사 수제비 실기
- 스프링 db2 - 데이터 접근 기술
- 게시글 목록 api
- jpa 활용2 - api 개발 고급
- 스프링 mvc2 - 로그인 처리
- 스프링 mvc1 - 서블릿
- 코드로 시작하는 자바 첫걸음
- 2024 정보처리기사 시나공 필기
- 스프링 입문(무료)
- 자바의 정석 기초편 ch14
- 자바의 정석 기초편 ch13
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch2
- 자바의 정석 기초편 ch4
- 스프링 db1 - 스프링과 문제 해결
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch8
- 자바의 정석 기초편 ch5
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch1
- @Aspect
Archives
- Today
- Total
나구리의 개발공부기록
자바의 정석 기초편 ch5 - 8 ~ 11 [배열의 활용1~4] 본문
1) 배열의 활용
(1) 총합과 평균 구하기
- 배열의 저장된 값의 합계와 평균을 출력
- 평균은 소수점으로 출력되야하기에 계산되는 변수중 한가지를 float타입으로 형변환을 해야함
public class ex5_2 {
public static void main(String[] args) {
// 총점을 저장하기 위한 변수
int sum = 0;
// 평균을 저장하기 위한 변수
float average = 0;
int[] score = {100,88,100,100,90};
for(int i = 0; i < score.length; i++) {
sum += score[i];
}
// 계산결과를 float로 얻기위함 (소수점자리 출력)
average = sum / (float)score.length;
System.out.println("총점 : "+sum);
System.out.println("평균 : "+average);
}
}
출력값
총점 : 478
평균 : 95.6
(2) 배열의 최대값과 최소값 구하기
public class ex5_3 {
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++) {
// 첫번째 값은 이미 저장했기 때문에 2번째 값(score[1])부터 반복문이 시작 하도록 변수 초기화
if(score[i] > max ) {
max = score[i];
// score[i]값이 저장된 max 값보다 크면 max값을 새로운 값으로 초기화
} else if(score[i] < min) {
min = score[i];
}
// score[i]값이 저장된 max 값보다 작으면 min값을 새로운 값으로 초기화
}
System.out.println("최대값 : "+max);
System.out.println("최소값 : "+min);
}
}
출력결과
최대값 : 100
최소값 : 33
배열의 요소를 섞기 (shuffle)
import java.util.Arrays;
public class ex5_4 {
public static void main(String[] args) {
int[] numArr = {0,1,2,3,4,5,6,7,8,9};
System.out.println(Arrays.toString(numArr));
// numArr 변수에 0 ~ 9 까지의 값을 초기화
for (int i = 0; i < 100; i++) {
// 조건식의 값만큼 실행
int n = (int)(Math.random()*10);
// index값 만큼 랜덤한 수를 얻는 변수 생성(0~9)
// 두 요소의 값 바꾸기를 활용하여 배열요소의 순서를 바꿈
// 아래의 방법은 배열의 첫번째 요소를 배열의 무작위 요소와 계속 자리바꿈하여 섞는 방식
int tmp = numArr[0];
// tmp의 값을 배열의 1번째 값으로 저장
numArr[0] = numArr[n];
// 배열 중 랜덤한 값을 배열의 1번째 값으로 저장
numArr[n] = tmp;
// tmp의 값을 배열의 랜덤한 값으로 저장
}
System.out.println(Arrays.toString(numArr));
}
}
출력결과
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[6, 9, 5, 2, 4, 7, 0, 3, 1, 8]
// 더 좋은 방법으로 섞는 방법
// 아래의 방법은 배열의 첫번째 요소부터 순차적으로 배열의 무작위 요소와 계속 자리바꿈하여 섞는 방식
for (int i = 0; i < numArr.length; i++) {
int n = (int)(Math.random()*10);
int tmp = numArr[i];
// tmp의 값을 배열의 i번째 값으로 저장
numArr[i] = numArr[n];
// 배열 중 랜덤한 값을 배열의 i번째 값으로 저장
numArr[n] = tmp;
// tmp의 값을 배열의 랜덤한 값으로 저장
로또번호 구하기(랜덤번호)
import java.util.Arrays;
public class ex5_5 {
public static void main(String[] args) {
int[] ball = new int[45];
// 0 ~ 44의 정수 배열 생성
for(int i = 0; i < ball.length; i++) {
ball[i] = i+1;
// 각 배열의 요소에 1 ~ 45의 값을 저장(index + 1 > 45까지)
}
int tmp = 0;
// 값바꾸기에 필요한 임시 변수
int j = 0;
// 임의의 값을 저장할 변수
// 배열의 i번째(첫번재 순서부터 순차적으로) 변수바꾸기 실행
for(int i = 0; i < 6; i++) {
// index 0번부터 5번 까지 총 6개의 요소만 바꿈
j = (int)(Math.random()*45);
// 0 ~ 44 사이의 랜덤한 값을 변수 j에 저장
tmp = ball[i];
ball[i] = ball[j];
ball[j] = tmp;
// 변수 섞기
System.out.println(Arrays.toString(ball));
// 변수가 섞이는 과정을 출력
}
for(int i = 0; i < 6; i++) {
System.out.printf("ball[%d]=%d%n", i, ball[i]);
}
}
}
출력결과
ball[0]=34
ball[1]=28
ball[2]=3
ball[3]=22
ball[4]=40
ball[5]=25
** 출처 : 남궁성의 정석코딩_자바의정석
'유튜브 공부 > JAVA의 정석 기초편(유튜브)' 카테고리의 다른 글
자바의 정석 기초편 ch5 - 18 ~ 24[2차원 배열, 2차원배열 예제, Arrays로 배열 다루기] (0) | 2023.11.13 |
---|---|
자바의 정석 기초편 ch5 - 12 ~ 17 [String배열, String클래스, 커맨드라인 입력받기] (1) | 2023.11.13 |
자바의 정석 기초편 ch5 - 6 ~ 7 [배열의 출력] (0) | 2023.11.09 |
자바의 정석 기초편 ch5 - 1 ~ 5 [배열, 배열의 인덱스,배열의길이,배열의초기화] (0) | 2023.11.08 |
자바의 정석 기초편 ch4 - 20 ~ 24 [break문, continue문, 이름붙은 반복문] (0) | 2023.11.08 |