gwooden_코린이
java_배열_221123(3일차) 본문
▶ 배열
배열도 값을 저장해주는 기능
예) 5명의 점수를 입력
5명의 점수를 다 살려내고자 한다.
int[] num = new int[5]
두번째 대괄호 안에 크기를 넣어준다.
→ num 배열 변수
0번방 | 1번방 | 2번방 | 3번방 | 4번방 |
위 처럼 기능을 활용하면 위 표처럼 5개의 값을 넣을 수 있는 공간이 생긴다.
공간 번호는 0번 부터 시작한다.
package 배열;
public class Sample01 {
public static void main(String[] args) {
int[] num = new int[5];
num[0] = 10; //0번 방에 10이라는 값을 저장하고자 할 때
num[1] = 20;
num[2] = 30;
num[3] = 40;
num[4] = 50;
System.out.println(num[0]); //저장간 값을 확인해 보고 싶을 때
System.out.println(num[1]);
System.out.println(num[2]);
System.out.println(num[3]);
System.out.println(num[4]);
System.out.println(num[5]);
}
}
10 | 20 | 30 | 40 | 50 |
하나의 저장공간 안에 여러개 값을 저장할 수 있는게 '배열'이다.
★ 예제01
package 배열;
public class Sample01 {
public static void main(String[] args) {
int[] num = new int[5];
int i, a = 10;
for(i=0; i<5; i++) { //방을 5개 만들었어도 0번 방 부터 시작하기 때문에
//조건식을 i<=5를 할 경우 5번방을 인식하는데 5번방은 없기 때문에 오류
//그래서 미만 < 으로 조건식을 작성 해준다.
num[i] = a; //i라는 방이 a만큼 있다는 것
a += 10; //for문에서 i가 조건식을 만족할 때 까지 반복(?)
}
for(i=0; i<5; i++) {
System.out.println(num[i]); //순수하게 방안에 있는 수를 가져오는 식
}
}
}
★ 예제02
package 배열;
public class Sample02 {
public static void main(String[] args) {
int[] num = new int[5];
String[] week = {"월", "화", "수", "목", "금", "토", "일"};
//대괄호 안에 값을 바로 넣어서 사용도 가능
int i;
for(i=0; i<week.length; i++) {
//'변수'.length는 배열방 크기를 알려주는 기능
System.out.println(week[i]);
//위 기능으로 배열방을 특정할 수 있어 배열방이 끝날때 까지 조건이 계속 이어진다.
}
}
}
★ 예제03
package 배열;
import java.util.Arrays;
public class Sample02 {
public static void main(String[] args) {
int[] num = new int[5];
String[] week = {"월", "화", "수", "목", "금", "토", "일"};
//대괄호 안에 값을 바로 넣어서 사용도 가능
int i;
for(i=0; i<week.length; i++) {
//'변수'.length는 배열방 크기를 알려주는 기능
System.out.println(week[i]);
//위 기능으로 배열방을 특정할 수 있어 배열방이 끝날때 까지 조건이 계속 이어진다.
}
//향상된 for문
for(String w : week) {
//int i; 선언한 것 처럼 임시 변수 선언 후 반복시킬 배열변수 선언
//week에 저장된 배열방에 순서대로 임시변수에 들어간다
System.out.println(w);
}
System.out.println(Arrays.toString(week) );
//import java.util.Arrays; 맨 위 해당 기능이 불러와짐
//한번에 값이 모두 출력
}
}
★ 예제04
package 배열;
public class Sample03 {
public static void main(String[] args) {
//boolean -> false
String[] a = new String[5];
//배열방 크기는 초반에 지정해 주기 때문에 중간에 바꿀 수 없다.
int b;
a[1] = "50";
a[3] = "100";
for(int i=0; i<5; i++)
System.out.println(a[i]);
}
}
★ 풀이 05
package 배열;
import java.util.Arrays;
import java.util.Scanner;
public class Sample04 {
public static void main(String[] args) {
// 5개의 점수를 입력받아 합계, 평균, 80점 이상인 개수를 출력하는프로그램을 완성하시오. <--스캐너 정수
// 점수 5개 입력 : 81 93 52 66 71<--배열 정수
// 입력받은 점수의 총 합계 : 363 <--정수
// 입력받은 점수의 평균 : 72.6 <--실수
// 입력받은 점수 중 80점 이상인 개수 : 2 <---정수
Scanner sc = new Scanner(System.in);
int[] num = new int[5];
int i;
int sum = 0, cnt=0; //합계 정수, 증가
double avg; //평균 실수
System.out.print("점수 5개 입력 : "); //처음 점수 입력하는 문자열은 한번만 나오고 값만 5개가 나와야 되기 때문ㅇ
//for문 들어가기 전에 위에 질문을 먼저 프린트문으로 작성한다.
for(i=0; i<5; i++) { //i값이 5개 미만일 때 까지 진행 후 종료
num[i] = sc.nextInt(); //num은 기본적으로 5개 배열방을 갖고 있다.
//for문이 조건식을 완료할 때 까지 num 배열 방에 값을 종료될 때 까지 저장한다.
sum = sum + num[i]; //sum 변수 값 0 + num[i] 배열방에 들어있는 각 값과의 총 합계
if(num[i]>80) { //아래로 진행 되면서 if문이 만약 num[i] 5개 배열방이 있는 값 중에 80점 이상인 값이 있을 경우
cnt++; //참일 경우 0값에서 최종 반복 횟수까지 간 후 그 횟수 + 증가식 1을 더해주면서 조건식에 값이 생성
}
}
avg = (double)sum / 5; // 마지막으로 평균값을 구하는 식
System.out.println("입력받은 점수의 총 합계 : " + sum);
System.out.println("입력받은 점수의 총 평균 : " + avg);
System.out.println("80점 이상인 개수 : " + cnt);
}
}
'java > 3일차' 카테고리의 다른 글
java_do ~ while문_221123(3일차) (0) | 2022.11.23 |
---|---|
java_while문_221123(3일차) (0) | 2022.11.23 |
java_반복문_221123(3일차) (0) | 2022.11.23 |