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

+ Recent posts