1. 2차원 배열
: 배열 안에 배열
한 번 접근하면 행, 두 번 접근하면 열
따라서 대괄호가 2번 필요하다
2. 2차원 배열 선언
자료형[][] 배열명 = new 자료형[행][열];
자료형[][] 배열명 = {
{값1, 값2, 값3},
{값4, 값5, 값6}, ...
};
3. 2차원 배열 사용
배열명[행][열]; //값
배열명[행][열] = 값; //저장공간
2차원 배열명[행] = 1차원 배열명[index];
//저장공간 //값
2차원 배열명[행] = 1차원 배열명;
arrData[0] = arData;
4. 정방배열과 비정방배열
: 모든 행에 열의 개수가 같으면 정방배열,
행마다 열의 개수가 다르면 비정방배열
5. 일차원 배열은 배열명에 ar을, 이차원 배열은 배열명에 arr을 붙여준다(개발자들끼리 약속!)
6. 오늘 실습 코드
1) ArTask
package day13;
import java.util.Scanner;
public class ArTask {
public static void main(String[] args) {
//소문자만 대문자로 바꿔주는 프로그램 만들기
//입력 예)asDfGHjKL!@#$1234
//출력 예)ASDFGHJKL!@#$1234
Scanner sc = new Scanner(System.in);
String result = "";
String data = "";
System.out.print("입력 : ");
data = sc.next();
data = data.toUpperCase();
System.out.println(data);
//아래의 복잡한 코드를 toUpperCase()를 이용하여 위의 두줄로 짧게 코딩할 수 있음
// for (int i = 0; i < data.length(); i++) {
// char temp = data.charAt(i);
//
// if(temp >= 97 && temp <= 122) {
// result += (char)(temp - 32);
// }else {
// result += temp;
// }
// }
// System.out.println(result);
}
}
2) Owner
package day13;
import java.util.Scanner;
public class Owner {
public static void main(String[] args) {
//1동 1호 2호 3호
//3칸 배열
//printf()는 사용하지 않는다.
//평균은 백원단위까지 출력
Scanner sc = new Scanner(System.in);
int[] arIncome = new int[3];
int total = 0;
double avg = 0.0;
for (int i = 0; i < arIncome.length; i++) {
System.out.println(i+1+"호 월세를 입력하세요(단위 : 만원)");
arIncome[i] = sc.nextInt();
total += arIncome[i];
}
avg = Double.parseDouble(String.format("%.2f", (double)total / arIncome.length));
System.out.println("1동 총 월세 : " + total + "만원");
System.out.println("1동 평균 월세 : " + avg + "만원");
}
}
3) Louis
package day13;
import java.util.Scanner;
public class Louis {
public static void main(String[] args) {
//강남점, 잠실점, 압구정동
//각 지점별 매출액 입력(만원 단위)
//총 매출액, 평균 매출액(백원 단위) 출력
//평균 매출액보다 매출이 많은 지점은
//인센티브 매장으로 출력
//인센티브 매장이 없으면 "없음" 출력
int[] arIncome = new int[3];
String[] arName = {"강남점", "잠실점", "압구정동"};
Scanner sc = new Scanner(System.in);
int total = 0;
double avg = 0.0;
int cnt = 0;
for (int i = 0; i < arIncome.length; i++) {
System.out.println(arName[i] + "매출액을 입력하세요(단위 : 만원)");
arIncome[i] = sc.nextInt();
total += arIncome[i];
}
avg = Double.parseDouble(
String.format("%.2f", (total+0.0) / arIncome.length));
System.out.println("루이비통 총 매출액 : " + total + "만원");
System.out.println("루이비통 평균 매출액 : " + avg + "만원");
System.out.println("★인센티브 매장★");
for (int i = 0; i < arName.length; i++) {
if(arIncome[i] > avg) {
System.out.println(arName[i]);
cnt++;
}
}
System.out.println(cnt == 0 ? "없음" : cnt + " / " + arIncome.length);
}
}
4) ArrTest
package day13;
public class ArrTest {
public static void main(String[] args) {
int[][] arrData = {
{ 1, 3, 5 },
{ 2, 8, 4 }
};
int length = arrData.length * arrData[0].length;
arrData[0][2] = 10;
System.out.println(arrData[0][2]);
System.out.println(arrData.length); //행의 갯수
System.out.println(arrData[0].length); //열의 갯수
//0 1 2 3 4 5 / 3
//0 0 0 1 1 1
//0 1 2 3 4 5 % 3
//0 1 2 0 1 2
for (int i = 0; i < length; i++) {
System.out.println(arrData[i/3][i%3]);
}
}
}
'웹_프론트_백엔드 > 단과' 카테고리의 다른 글
[단과_JAVA] 2020.02.03 (0) | 2020.02.04 |
---|---|
[단과_Python] 2020.01.31 (0) | 2020.02.03 |
[단과_Python] 2020.01.30 (0) | 2020.01.30 |
[단과_JAVA] 2020.01.30 (0) | 2020.01.30 |
[단과_Python] 2020.01.29 (0) | 2020.01.29 |