20240812수업
반복문 사용 없이 출력 >> 변수명 각각 다름
String name1, name2, name3;
name1="카리나"; name2="윈터"; name3="원영"; >>이름이 다르면 반복문에 사용불가
for(i=1;i<=3;i++)
sysout(name+i)
작동 X
String name1 = "김좌진";
String name2 = "신채호";
String name3 = "안중근";
String name4 = "이봉창";
String name5 = "한용운";
System.out.println(name1);
System.out.println(name2);
System.out.println(name3);
System.out.println(name4);
System.out.println(name5);
System.out.println();
<배열(Array)>
dense list(연접 리스트)
이름과 type이 같은 변수를 모은것
String [] names = new String[5];
변수: String type | 변수명:names 5개 한번에 만든다
같은 이름과 type을 가진 변수여러개를 동시에 만든다>> 배열(array): dense list
방구분:0부터 시작 (0~5)
names[0]=names01
String[] names = new String[5]; // String 변수 5개 만들어짐
names[0] = "김좌진";
names[1] = "신채호";
names[2] = "안중근";
names[3] = "이봉창";
names[4] = "한용운";
System.out.println(names[0]);
System.out.println(names[1]);
System.out.println(names[2]);
System.out.println(names[3]);
System.out.println(names[4]);
System.out.println();
index : []안의 숫자 -> 첨자, 색인 -> 위치의미 0부터 시작
없는 번호를 조작하면 실행할때 에러(Exception) ⇒ Index Out of Bound
for (int i = 0; i <= 4; i++) {
System.out.println(names[i]);
}
System.out.println();
↑반복문을 통한 출력
- 배열은 한 번 만들어지면 크기가 변경되지 않는다.
- 다차원 배열 - c언어
- 2차원 배열
- 모든줄의 요소가 통일한 경우 -위치대응
- 3줄 4칸 :12개 방 생성 c언어:arr[3][4] c#:arr[3,4], java언어 :x
{
{1,2,3,4,},
{5,6,7,8,},
{9,10,11,12,}
} - 배열의 배열 - 자바
- 배열방의 요소가 배열 c언어:*arr[3], c#언어:arr[3][], java언어:arr[3][],
{
{1,2,3,4,1,2,3}, //arr[0]:7
{5,6,7,8,}, //arr[1]:4
{9,10,11,12,9} //arr[2]:5
}
String[] foodList = new String[] { "김치찌개", "닭볶음탕", "된장찌개", "잡채", "북어국" };
for (int i = 0; i < foodList.length; i++) {
System.out.println(foodList[i]);
}
System.out.println();
- 배열을 만듬
- 배열의 초기값-배열 생성시 동시에 값을 넣는다
- 초기값의 갯수만큼 배열의 크기 결정 - 만들때 크기를 사용X
- 배열의 크기 : foodList.length[5]>>5개
String[] todoList = { // 초기값이 있기때문에 생략 가능
"운동", "자료구조수업", "동아리 공연 연습", "과제 제출", "방 청소" };
for (String todo : todoList) { // for each
System.out.println(todo);
}
System.out.println();
int sale[] = new int[] { 157, 209, 251, 312 }; // 판매량
// 3/4분기의 판매량
System.out.println("3/4분기의 판매량:" + sale[2]);
// 분기별 판매량 출력
for (int i = 0; i < sale.length; i++) {
System.out.println((i + 1) + "/4분기의 판매량: " + sale[i]);
}
↑분기별 데이터
int sum=0;
for(int i=0;i<sale.length;i++) {
sum+=sale[i];
}
System.out.println("전체 판매량: "+sum);
}
↑전체 판매량
💡tip:ctrl+shift+f 로 코드정리가능
2차원 배열
int [][]sales = new int[][] {
{63, 88, 143, 131},
{157, 209, 251, 312}
};
//2007년 3/4분기의 판매량
System.out.println("2007년 3/4분기의 판매량: " +sales[0][2] );//143
//2008년 4/4분기의 판매량
System.out.println("2008년 4/4분기의 판매량: " +sales[1][3] );//312
//2008년 판매량 총계
int sum1=0;
for (int i = 0; i < sales[1].length; i++) {
sum1+=sales[1][i];
} System.out.println("2008년 판매량 총계: "+sum1);//929
//2007년 판매량 평군(소수이하 3자리로 반올림 하여 출력)
double avg=(double)sum/(double)sales[0].length;
System.out.printf("2007년 판매량 평균: "+"%.3f", avg ); //106.250
//%전체자라수.소수이하 자리수f:
//.3f:소수이하 3자리
//전체 판매량과 전체 평균
int sum2=0;
for (int k = 0; k < 2; k++) {
for (int i = 0; i < 4; i++) {
sum2+=sales[k][i];
}
}System.out.println("전체 판매량 총계: "+sum2); //1354
System.out.printf("전체 판매량 평균: "+"%.3f", (double)sum2/8.0 );//169.250
//2007년 최대판매량
int max=sales[0][0];
for(int i=0;i<sales[0].length;i++) {
if(max<sales[0][i]) {
max=sales[0][i];
}
}
System.out.println("2007년 최대판매량: "+max); //143
//2008년 최소판매량
int min=sales[1][0];
for(int i=0;i<sales[1].length;i++) {
if(min>sales[1][i]) {
min=sales[1][i];
}
}
System.out.println("2008년 최소판매량: "+min); //157
//총 최대 판매량
int max1=sales[0][0];
for (int j = 0; j < sales.length; j++) { //0,1
for (int i = 0; i < sales[j].length; i++) { //0,1,2,3
if(max1<sales[j][i]) {
max1=sales[j][i];
}
}
}System.out.println("전체 최대 판매량: "+max1); //312
int [][][]salesteam=new int[][][]
{
{
{63, 88, 143, 131}, //2007
{157, 209, 251, 312} //2008
}, //1팀 실적
{
{33, 98, 243, 101}, //2007
{109, 309, 221, 302} //2008
} //2팀 실적
}; //아파트 단지 생각
for (int i = 0; i < salesteam.length; i++) {
for (int j = 0; j < salesteam[i].length; j++) {
for (int k = 0; k < salesteam[i][j].length; k++) {
System.out.print(salesteam[i][j][k] + " ");
}
System.out.println();
}
System.out.println();
}
더보기
[참고]
형태 다른 배열:리스트
ex)Array, ArrayList, Map
가변배열 - 실행할때 방마다 대응하는 배열
- 실행할때 변수가 변하는 배열
ArrayList<Integer> scores = new ArrayList<Integer>();
'JAVA' 카테고리의 다른 글
[java] String 함수 총정리 (0) | 2024.08.15 |
---|---|
[java] 주민등록번호, 사업자 등록번호 유효성 검사 (0) | 2024.08.15 |
[java] 반복문 for 2 (0) | 2024.08.12 |
[java] 반복문(for,while),등차∙피보나치∙등비 수열의 합 (0) | 2024.08.12 |
[java] Stack메모리, Heap메모리 (0) | 2024.08.12 |