12일차 강의 정리
1. 단일 배열
배열(객체)
변수가 많이 필요한 경우에 사용
선언 형태 : 자료형[] 변수명(배열명) = new 자료형[갯수];
( 자료형 변수명[] = new 자료형[갯수]; )
( 자료형[] 변수명 = {값,값,...}; )
변수명[인덱스]=초기값;
인덱스는 0으로 시작, +1씩 증가, 총 갯수에서 -1 까지
소스
public class Ex01 {
public static void main(String[] args) {
int[] arr = new int[100]; //배열 선언 방법1
for(int i=0;i<10;i++){ //배열의 초기화
arr[i]=i;
System.out.println("arr["+i+"]="+arr[i]);
}
System.out.println(arr[0]+arr[1]+arr[2]+arr[3]+arr[4]);
System.out.println("-------------------------");
char[] ch = new char[26]; //char배열 선언
for(int i=0;i<26;i++){
ch[i]=(char)(65+i);
System.out.print(ch[i]+" ");
}
System.out.println("\n-------------------------");
int[] arr2 = new int[]{0,1,2,3,4}; //배열 선언 방법2
for(int i=0;i<5;i++){ //배열의 초기화
System.out.print(arr2[i]+" ");
}
System.out.println("\n-------------------------");
int[] arr3 = {0,1,2,3,4}; //배열 선언 방법3
for(int i=0;i<5;i++){ //배열의 초기화
System.out.print(arr3[i]+" ");
}
System.out.println("\n-------------------------");
//배열사용 ->홀수들의 합(1~100)까지
int[] array = new int[101]; //배열 선언
int sum=0;
for(int i=0;i<101;i++){ //배열의 초기화
array[i]=i;
if(i%2!=0){
sum +=array[i];
}
}
System.out.println("값=>"+sum);
}//main end
}//class end
결과
소스2
public class Ex02 {
public static void main(String[] args) {
System.out.println("-------------------------");
String input1 = args[0];
String input2 = args[1];
String input3 = args[2];
System.out.println("input count:"+args.length+"("+input1+", "+input2+", "+input3+")"); //입력준 값의 갯수와 1,2,3출력
System.out.println("-------------------------");
for(int i=0;i<args.length;i++){
System.out.println(args[i]); //args입력 준 값 출력
}
System.out.println("-------------------------");
int[] arr = null; //배열의 선언
arr = new int[3]; //배열의 선언
for(int i=0;i<arr.length;i++){ //배열의 초기화
arr[i]=0;
}
arr[0]=1;
arr[1]=2;
arr[2]=3;
//새로 다시 선언함으로 위의 객체는 가비지 컬렉션(자원관리에 효율적)에 의해 삭제(더이상 가르킬방법이 없어서)
arr = new int[5];
arr=new int[]{1,2,3,4,5};
int[] arr2 = {1,2,3}; //new int[]생략 가능한 경우는 선언시 최초
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+"\t");
}
}//main end
}//class end
결과2
소스3
public class Ex03 {
public static void main(String[] args) {
String[] arr = new String[]{"java", "web", "spring"};
System.out.println("1번째 결과:");
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
func1(arr); //메소드 호출(문자열 인자로)
System.out.println("\n3번째 결과:");
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]); //배열은 참조변수,,주소값을 복사했기 때문에 변형된 것이 그대로 출력
}
}//main end
public static void func1(String[] st){ //배열 {"java", "web", "spring"}을 인자로 받아
st[1]="html"; //arr[1]를 변경
System.out.println("\n2번째 결과 출력");
for(int i=0;i<st.length;i++){
System.out.println(st[i]);
}
}//func1 end
}//class end
결과3
소스4 (입력받은 배열을 역순하라)
메인{
int[] arr = new int[]{1,2,3,4,5};
int[] arr2 = new int[arr.length];
//방법1
// int j=arr.length-1;
//
// for(int i=0;i<arr.length;i++){
// arr2[i]=arr[j];
// j--;
// }
//2방법
for(int i=0;i<arr.length;i++){
arr2[i]=arr[i];
}
int temp=0;
for(int i=0;i<arr2.length-1;i++){
for(int j=i+1;j<arr2.length;j++){
if(arr2[i] < arr2[j]){
temp=arr2[i];
arr2[i]=arr2[j];
arr2[j]=temp;
}
}
}
System.out.print("arr1: ");
for(int i=0;i<arr.length;i++){ //arr출력
System.out.print(arr[i]+" ");
}
System.out.println("\n------------------------------------------------");
System.out.print("arr2: ");
for(int i=0;i<arr.length;i++){ //arr2출력
System.out.print(arr2[i]+" ");
}
}
결과
2. 다중 배열
선언 형태 : 자료형[][] 변수명(배열명) = new 자료형[갯수][갯수];
다른 방법은 소스로 설명
소스
public static void main(String[] args) {
//다중배열
int[][] arr = new int[3][4]; //[행][열] 순으로 3행 4열의 다중배열
System.out.println("행의 갯수:"+arr.length); //행의 갯수
System.out.println("열의 갯수:"+arr[0].length); //열의 갯수
System.out.println("열의 갯수:"+arr[2].length); //열의 갯수는 행의 번호와 관계X
for(int i=0;i<arr.length;i++){
for(int j=0;j<4;j++){
arr[i][j]=j;
System.out.print(arr[i][j]);
}
System.out.println();
}
}//main end
결과
초기화 하는 방법
//학생1 - 국어:70 영어:75 수학70
//학생2 - 국어:80 영어:85 수학84
//학생3 - 국어:90 영어:55 수학60
int[][] sungjuck = new int[3][3]; //선언
//방법1
sungjuck[0][0]=70; //학생1
sungjuck[0][1]=75; //학생1
sungjuck[0][2]=70; //학생1
//방법2
int[] stu2 = sungjuck[1]; //학생2
stu2[0] = 80; //학생2
stu2[1] = 85; //학생2
stu2[2] = 84; //학생2
//방법3
int[] stu3 ={90,55,60}; //학생3
sungjuck[2] = stu3; //학생3
stu3[1]=65; //학생3 영어점수 수정(학생1-X,학생2-O)
//방법4
sungjuck[2] = new int[]{90,55,60}; //학생3
소스(방법5)
System.out.println("------------------------------------");
System.out.println("학생성적관리(v1.2.0)");
System.out.println("------------------------------------");
//방법5
int[][] sungjuck = {{70,75,70},
{80,85,84},
{90,55,60} }; //학생1,2,3 [3][3]
System.out.println("국어\t영어\t수학\t총점\t평균\t학점");
for(int i=0;i<sungjuck.length;i++){
int[] stu = sungjuck[i]; //한명의 학생 성적
int sum=0; //총점
double avg; //평균
char c; //학점
for(int j=0;j<stu.length;j++){
sum+=stu[j];
System.out.print(stu[j]+"\t");
}
avg=100*sum/stu.length/100.0; //평균 계산
if(avg>=90){
c='A';
}else if(avg>=80){
c='B';
}else if(avg>=70){
c='C';
}else if(avg>60){
c='D';
}else{
c='F';
}
System.out.println(sum+"\t"+avg+"\t"+c);
}
결과
'* Programming > JAVA' 카테고리의 다른 글
JAR로 export 하기 (0) | 2016.07.19 |
---|---|
DAY12 배열 문제 (0) | 2016.07.19 |
DAY11 class 정리/상수화 (0) | 2016.07.18 |
DAY10 업다운 게임 (0) | 2016.07.18 |
DAY10 Class/생성자 (0) | 2016.07.18 |