// 1차원 배열
// 같은 자료형을 한곳에 모아놓은것
int[] num = new int[5];
int[] num2 = {1,2,3,4,5};
char[] ch = {'a','b','c'};
boolean[] bl = {true,false};
String[] str = {"dk", "djdkdj"};
num2[2] = 0;
for(int a:num2) {
System.out.println("num2 배열 출력: " + a);
}
int count = 1;
for(int i = 0; i < num.length; i++) {
// num[i] = 2*i + 1;
num[i] = count;
count += 2;
}
for(int a:num) {
System.out.println("num 배열 출력: " + a);
}
System.out.println(Arrays.toString(num)); //[1, 3, 5, 7, 9]
System.out.println(Arrays.toString(ch)); //[a, b, c]
System.out.println(ch); //abc
int[][] score = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
System.out.println(score[0][1]);//2
System.out.println(score[1][2]);//6
System.out.println(Arrays.toString(score[0]));//[1, 2, 3]
System.out.println(Arrays.toString(score));//[[I@2401f4c3, [I@7637f22, [I@4926097b]
System.out.println(score.length);//4
for(int i = 0; i < score.length; i++) {
for(int j = 0; j < score.length; j++) {
System.out.println(score[i][j]);//1,2,3,Exception...
}
}
int[][] score = {{1,2,3,4,5},{4,5,6,4,5},{7,8,9,4,5},{10,11,12,4,5}};
for(int i = 0; i < 4; i++) {
for(int t = 0; t < 5; t++) {
if(t == 5) System.out.print(score[i][t]); else System.out.print(score[i][t]+"\t");
}
if(i == 3) System.out.println(); else System.out.println("\n\n");
}
System.out.println(score.length); //행의 길이 ==> 4
System.out.println(score[2].length);//해당 행의 길이 ==> 5
행과 열의 길이가 다를 수 있음
//5행 3열 배열에 점수 넣기
//5명의 국어, 영어, 컴퓨터 점수
int[][] score =
{ //5행 3열의 2차원배열 전부 랜덤
{(int) (Math.random()*100+1), (int) (Math.random()*100+1), (int) (Math.random()*100+1)}
,{(int) (Math.random()*100+1), (int) (Math.random()*100+1), (int) (Math.random()*100+1)}
,{(int) (Math.random()*100+1), (int) (Math.random()*100+1), (int) (Math.random()*100+1)}
,{(int) (Math.random()*100+1), (int) (Math.random()*100+1), (int) (Math.random()*100+1)}
,{(int) (Math.random()*100+1), (int) (Math.random()*100+1), (int) (Math.random()*100+1)}
};
System.out.println("번호\t국어\t영어\t컴퓨터\t총점\t평균");
System.out.println("---------------------------------------------");
//각 학생별 점수 출력
for(int i = 0; i < score.length; i++) {
int sum = 0;
double avr = 0;
System.out.print((i+1)+"\t");
for(int t = 0; t < score[i].length; t++) {
System.out.print(score[i][t] + "\t");
sum += score[i][t];
}
avr = (double)sum/3;
System.out.print(sum + "\t");
System.out.printf("%.1f", avr);
System.out.println();
}
System.out.println("---------------------------------------------");
//과목별총점출력
int sum1 = 0;
System.out.print("총점\t");
for(int i = 0; i < score[0].length; i++) {
for(int t = 0; t < score.length; t++) {
sum1 += score[t][i];
}
System.out.print(sum1 + "\t");
sum1 = 0;
}
//과목별 평균점 출력
double avr1 = 0;
System.out.print("\n평균\t");
for(int i = 0; i < score[0].length; i++) {
for(int t = 0; t < score.length; t++) {
sum1 += score[t][i];
}
avr1 = (double)sum1/score.length;
System.out.printf("%.1f", avr1);
System.out.print("\t");
avr1 = 0;
sum1 = 0;
}
출력
강사님은 korSum, engSum 이런 식으로 각각의 변수를 만드시고 포문 갯수를 하나 줄이심
int[] arr = {0,5,2};
int count = 0;
for(int i = 0; i < arr.length-1; i++) {
boolean chg = false;
for(int j = 0; j < arr.length-i-1; j++) {
if(arr[j] > arr[j+1]) {
int a;
a = arr[j+1];
arr[j+1] = arr[j];
arr[j] = a;
chg = true;
count++;
}
}
if(!chg) {
break;
}
}
System.out.println(Arrays.toString(arr));
System.out.println(count);
값을 뒤바꿀때 처음 대입받는 쪽은 그 값이 사라지므로
새로 변수를 하나 만들어서 거기에 빼두고
나중에 다시 대입하는 식으로 살려낼 수 있다.