JAVA-06
JAVA 06
여러가지 배열 문제
10칸짜리 빈 배열 만들고 1부터 10까지 채워넣은 뒤 배열의 각 방에 있는 값들 출력하기
int [] arr1 = new int [10];
for (int i = 0; i < arr1.length; i++) {
arr1[i] = i+1;
System.out.println(arr1[i]);
}
10칸짜리 빈 배열 만들고 10부터 1까지 채워넣은 뒤 배열의 각 방에 있는 값들 출력하기
int [] arr2 = new int[10];
for (int i = 0; i < arr2.length; i++) {
arr2[i] = 10 - i;
System.out.println(arr2[i]);
}
사용자에게 5개의 정수 입력받아서 (1,2,3,4,5) 다음과 같이 출력하기
int [] arr1 = new int [10];
for (int i = 0; i < arr1.length; i++) {
arr1[i] = i+1;
System.out.println(arr1[i]);
}
int [] arr2 = new int[10];
for (int i = 0; i < arr2.length; i++) {
arr2[i] = 10 - i;
System.out.println(arr2[i]);
}
예시
//1번째 정수 : 1
//2번째 정수 : 2 ....
//총합 : 15
풀이
// 정수 5개의 공간을 만든다.
int [] arr3 = new int[5];
// 결과를 출력할 공간을 만든다.
int result = 0;
// 처리부분 반복을 따로 만든다.
for (int i = 0; i < arr3.length; i++) {
System.out.println(i+1+"번째 정수를 입력하세요 : ");
// 배열의 길이 만큼 반복문을 실행시켜서 배열마다 사용자가 입력한 정수를 담는다.
arr3[i] = sc.nextInt();
// 담긴 값들을 result에서 누적연산자를 이용하여 합을 구한다.
result += arr3[i];
}
// 출력부분을 따로 만든다.
for (int i = 0; i < arr3.length; i++) {
// 배열에 입력된 값을 출력한다.
System.out.println((i+1)+"번째 정수 : " + arr3[i]);
}
// result에 입력된 값을 출력한다.
System.out.println("총합 : " + result);
국어점수, 영어점수, 수학점수 입력받아서 총점과 평균점수 출력하기
// 과목만큼 점수를 입력받고 과목만큼 나누어 평균을 구한다., 과목도 구분해서 출력해야한다, 배열에 담자
String [] subject = {"국어", "영어", "수학"};
// 과목 수만큼 점수배열공간도 만들어 두자
int [] score = new int[subject.length];
// 총점을 이용하여 평균을 구하니 총점을 담을 변수도 초기화한다.
int sum = 0;
// 과목 수 만큼 반복문을 돌려서 사용자에게 숫자를 입력받는다.
for (int i = 0; i < subject.length; i++) {
// 입력부분, 처리부분
System.out.println(subject[i] + "점수를 입력하세요. : ");
score[i] = sc.nextInt();
// 총점도 바로 구할 수 있다.
sum += score[i];
}
// 사용자에게 받은 값을 활용하여 점수를 출력한다. 출력 부분
for (int i = 0; i < subject.length; i++) {
// score배열에 담긴 값을 출력하자
System.out.println(subject[i] + "점수 : " + score[i]+"점");
}
// 총점을 출력한다.
System.out.println("총점 : " + sum+"점");
// 총점과 과목의 수를 이용하여 평균을 출력한다.
System.out.printf("평균 : %.1f점",(float)(sum) / subject.length);
2차원 배열
- 배열 안에 배열이 있는 형태
2차원 배열 선언
자료형[][] 배열명 = {
{값1, 값2, ...},
{값3, 값4, ...},
...
};
- 자료형[ ][ ] 배열명 = new 자료형 [행수][열수];
2차원 배열의 길이
- 2차원 배열명.length : 행의 개수
- 2차원 배열명[행번호].length : 행에 만들어져 있는 소배열의 길이
int [][] arrNumber = {
{1,2,3},
{4,5,6,7}
};
System.out.println(arrNumber.length);
//행의 갯수인 2를 출력한다.
System.out.println(arrNumber[0].length);
//열의 갯수인 3을 출력한다.
System.out.println(arrNumber[1].length);
//열의 갯수인 4를 출력한다.
2중 for문(nested for문)
- for문 안에 for문이 있는 형태
바깥쪽에 있는 i for문은 다음 반복으로 넘어가기 위해서
안쪽에 있는 수행할 문장들을 한번씩 다 마쳐야 한다.
안에 있는 수행할 문장중에 j for문이 있으므로, 그 j for문이
완벽히 모두 완료되어야 i for문 입장에서는 반복시 수행할 문장을
마친것이 되고, 그 이후에야 다음 반복으로 넘어갈 수 있게된다.
따라서 가장 안쪽에 있는 문장은 (i for문 반복횟수)*(j for문 반복횟수)
만큼 수행된다.
package day06;
public class ArrTest {
public static void main(String[] args) {
int [][]arrData = {
{10,20,30},
{40,50,60}
};
// i는 행의 개수만큼 2를 반복한다., j가 한번 반복하고 j의 바디를 나와야 i증감식이 작동하여 다음 반복을 실행한다.
for (int i = 0; i < arrData.length; i++) {
// j는 열의 갯수만큼 반복한다.
for (int j = 0; j < arrData[i].length; j++) {
// 다음 데이터를 출력하면 10,20,30,40,50,60 순으로 출력한다.
System.out.println(arrData[i][j]);
}
}
}
}
위의 작동은 다음과 같다
i j
0 0 ``````````` 첫번째 동작
0 1 ``````````` 두번째 동작
0 2 ``````````` 세번째 동작, 완료 후 i 증가
1 0 ``````````` 네번째 동작
1 1 ``````````` 다섯번째 동작
1 2 ``````````` 여섯번째 동작
Author And Source
이 문제에 관하여(JAVA-06), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@km2535/JAVA-06저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)