2023. 12. 4. 23:42ㆍDaily Codig Reminder
1. 배열선언
데이터형 [] 베열명;
또는
데이터형 배열명 [];
2. 배열생성
배열명 =new 데이터형 [크기];
3. 배열초기화
배열명 [인덱스] = 값;
//1, 배열선언
int num [];
//2. 배열생성
num = new int [3];
sysout (num);
sysout(num[0]);
sysout(num[2]);
sysout(num.length);
num[0]=10;
num[1]=20;
num[2]=30;
System.out.println(num[0]);
System.out.println(num[1]);
System.out.println(num[2]);
System.out.println("=============");
for (int i =0; i <3; i++){
sysout("num['+i+"]:"+num[i]);
}
sysout("==========");
for (int =0; i <3; i++){
sysout(num[i]);
}sysout ("=======");
for(int data :num){ //배열을 자동순회
int count =0;
sysout("for each: " +count +"번째 데이터"+data);
count++;
}sysout ("배열 데이터 총합 =====");
int sum =0;
for ( int i =0; i<num.length; i++){
sum+=num[i]; //누적 총합
}sysout("총합:"+sum);
sysout("배열 데이터의 for each 총합 2.====");
int sum2=0;
for(int i:num){
sum2+=i; //누적합계
}sysout("총합"+sum2);
int []num = new int [4];
num [0]=1;
num [1]=2;
num [2]=3;
num [3]=4;
num = new int[3];
num[0]=10;
num[1]=20;
num[2]=30;
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}System.out.println("===========");
for (int x : num) {
System.out.println(x);
}sysout("======= 일반 for 누적합산1");
int sum =0;
for (int i =0; i<num.length; i++){
int j =num[i];
sum = sum+j;
}sysout("sum:"+sum);
sysout ("======= 일반 for 누적합산1");
sum =o;
for (int i :num){
sum +=i;
}sysout("sum: "+sum);
1.2 리터럴을 이용한
데이터형 [] 배열명 = { 값 , 값2 , 값3 };
//1. new 이용 num 배열 3개 생성 10 20 30
int num [];
num = new int [3];//생성
sysout(num[0]); //null
num[0]=10;
num[1]=20;
num[2]=30;
//일반 for 이용 순회 출력
for (int i =0; i<num.length; i++){
sysout(num[i]);
}sysout("========");
for (int data:num){
sysout(data);
//2. 값만 이용, 생성과 동시에 초기값 저장
int [] num2 = {10,20,30};
sysout(num2.length);
sysout(num2[0]);
int []num1;
num1 = num2;
num1 [0]=100;
System.out.println(num2[0]);
System.out.println(num2);
System.out.println(num1);
//num1 순회 출력
for (int i = 0; i < num1.length; i++) {
System.out.println(num1[i]);
}System.out.println("=========");
//num2 순회 출력
for (int i = 0; i < num2.length; i++) {
System.out.println(num2[i]);
}System.out.println("=========");
int []num3 = {1,2,3,4,};
num2 =num3;
for (int i : num2) {
System.out.println(">>"+i); }
//역순 출력
int []arr = {10,20,30,40,50,60,70,80,90,100};
for(int i = 1 ; i <= arr.length; i++) {
System.out.print(arr[arr.length-i] +" "); }
- int[] arr = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};:
정수 배열 **arr**을 선언하고 초기화합니다. - for (int i = 1; i <= arr.length; i++) {
: 반복문을 시작합니다. i는 1부터 시작하여 배열의 길이(arr.length)까지 1씩 증가합니다. - System.out.print(arr[arr.length - i] + " ");
: 현재 인덱스 **arr.length - i**의 배열 요소를 출력합니다.
이 부분에서 **arr.length - i**는 배열의 끝에서부터 역순으로 요소를 선택하는 역할을 합니다.- 첫 번째 반복에서는 **arr[arr.length - 1]**이 선택되어 100이 출력됩니다.
- 두 번째 반복에서는 **arr[arr.length - 2]**이 선택되어 90이 출력됩니다.
- 세 번째 반복에서는 **arr[arr.length - 3]**이 선택되어 80이 출력됩니다.
- 이런식으로 반복이 진행됩니다.
- 최종적으로 반복문을 통해 배열의 모든 요소를 역순으로 출력합니다.
다른방법 역순
System.out.println();
System.out.println("===============");
for (int i= arr.length-1; i>=0; i--) {
System.out.print(arr[i]+" ");
int num[]= {10,20,30};
int min =0;
for (int i = 0; i < num.length; i++) {
if (min > num[i]); {
min=num[i];
} // System.out.println(max);
Scanner scan = new Scanner (System.in);
sysout("키의 최댓값을 구합니다.");
sysout('사람 수");
int num = scan.nextInt():
int [] height = new int [num];
for (int i=0; i<num; i++){
for (int i = 0; i < num; i++) {
System.out.println("사람 "+(i+1)+": ");
height[i] = scan.nextInt();
}
int max = height[0];
for (int i = 0; i < height.length; i++)
if (height[i]>max) {
max =height[i];
}
System.out.println("최댓값은 "+ max +"입니다."); }
- Scanner 클래스를 사용하여 사용자로부터 입력을 받을 수 있는 객체 **scan**을 생성합니다.
- "키의 최댓값을 구합니다."와 "사람 수: "를 출력하여 사용자에게 목적을 알리고, 사용자로부터 사람 수를 입력받습니다.
- 입력받은 사람 수(num)만큼의 크기를 갖는 정수 배열 **height**를 선언하고 초기화합니다.
- for 반복문을 사용하여 각 사람의 키를 입력받습니다. 각 입력된 키는 배열 **height**에 저장됩니다.
- 배열 **height**의 첫 번째 요소를 **max**로 초기화합니다.
- 다시 for 반복문을 사용하여 배열 height를 순회하면서 최댓값을 찾습니다. 만약 현재의 키(height[i])가 현재까지의 최댓값(max)보다 크면 최댓값을 갱신합니다.
- 반복문이 끝나면 최종적으로 찾은 최댓값을 출력합니다.
따라서, 이 코드는 사용자로부터 입력받은 여러 사람의 키 중 최댓값을 찾아 출력하는 프로그램입니다.
1. 4 이차원 배열생성
1. 배열선택
데이터형 [][] 배열명;
2. 배열생성
배열명 = new 데이터형 [행크기][열크기];
배열명 = new 데이터형 [행크기][]
for (int i =0; i <2; i++){
for (int j = 0; j < 3; j++) {
System.out.println("num["+i+"]["+j+"]= "+ num[i][j]);
} System.out.println("=========================");
for (int i = 0; i < num.length; i++) {//행번호2
// for (int j = 0; j < num.length; j++) { //각 행 방의 열 방 갯수 따로 구함
// System.out.println(num[i][j]);
//3.누적
int sum1=0;
for (int i =0; i<num.length; i++){
for (int j =0; j<num,length; j++){
sysout(num[i][j]);
sum1+= num[i][j];
}
}sysout(sum1);
//4. for each 를 이용한 출력
for (int[] row : num){// row :열 0 1 2
for (int data :row){ //data: 10 20 30
System.out.println(data);
}
}
} int sum =0;
for(int [] row:num) {
for(int data: row) {
sum+= data; } }
int [][]num = new int [2][]; //2행 열지정 없음
num[0] = new int [3];
num[1] = new int [2];
//초기화
num[0][0]=10;
num[0][1]=20;
num[0][2]=30;
num[1][0]=40;
num[1][1]=50;
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num.length; j++) {
System.out.println("num["+i+"]["+j+"]="+num[i][j]);
}System.out.println("=============");
} int sum =0;
for (int[] row : num) {
for (int data: row) {
System.out.println(data); } }
int [][]arr= {
{10,20,30}, { 50, 40, 60 }, { 80, 80, 90 } };
for (int i= arr.length-1; i>=0; i--) {
for (int j =arr.length-1; j>=0; j--) {
System.out.print(arr[i][j]+" "); } }
90 80 80 60 40 50 30 20 10
call by ref :함수 호출 시 주소가 전달 : 기본형 제외 모든것.
배열은 주소가 같고 아예 값을 100으로 바꿈
private static void test2(int[] num2) {
num2[0]=100; }
public static void main(String[] args) { /
/ // int num=10;
// System.out.println("main함수: "+num);
// test(num);//함수호출, 데이터 전달
// System.out.println("main test 호출 후: "+num);
int [] num2 = {10,20,30};
for (int i : num2) {
System.out.println(i);
}System.out.println("===========");
test2(num2); //test함수에 num2 정수 배열 전달,
System.out.println("test2 함수 호출 후=========");
for (int i : num2) {
System.out.println(i);
} } test3(num2[2]); → num2의 2를 가져와서 복사 해서 value
} private static void test3(int i) { i = 1;
System.out.println(num2[2]);
}
'Daily Codig Reminder' 카테고리의 다른 글
메소드 (1) | 2023.12.06 |
---|---|
클래스(객체), 메소드 (1) | 2023.12.05 |
문장 (1) | 2023.11.30 |
식별자와 데이터형, 연산자 (0) | 2023.11.29 |
CSS+ JAVA (1) | 2023.11.29 |