빅데이터 서비스 교육/Java

Java 배열

Manly 2022. 5. 3. 11:33
반응형

 

 

 

int[] arr = new int[5];
//arr --> 5칸짜리 배열이 어디 들어있는지 주소값을 참조하는 레퍼런스 변수


System.out.println("주소값 : "+arr);
//주소값 : [I@1c4af82c    @-> 이게 보이면 주소값.

System.out.println(arr[2]);
//arr[2] -> 변수명arr의 [2] 인덱스 2번에 들어있는 데이터 값을 알수있다.

arr[2]=4;
//arr의 인덱스 2번에 값에 4를 대입한다.
System.out.println(arr[2]);

//string형의 기본값은 null
//배열을 생성함과 동시에 데이터를 넣는 방법.
String[] names = {"이상희", "주미리"};
                 //이때 데이터 2개이므로 2칸

System.out.println(names[1]);
// 배열의 특징
// 1. 같은 자료형만 하나로 묶을 수 있다.
// 2. 인덱스 번호를 가지고 있고 0부터 순차적으로 1씩증가한다.
// 3. 데이터 저장공간의 크기가 고정적이다.

 

 

 

 


성적계산 예제
//총 5개의 점수를 입력받으세요
//입력된 점수를 출력하세요
//입력한 점수중 최고 점수와 최저 점수를 출력하세요.
//점수의 총합과 평균(소수점출력)을 출력하세요.

		Scanner sc = new Scanner(System.in);
		int[] arr=new int[5];
		
		double avg=0;
		int sum=0;
		int max=0;
		int min=100;
		//for문 하나로 쓸때는 얘를 arr[i]처럼 유동적인값이아니라 
		//점수 범위의 최대값을 넣어라
		
		for (int i = 1; i < arr.length+1; i++) {
			System.out.print(i+"번째 입력>>");
			arr[i-1]=sc.nextInt();
			//int score =sc.nextInt();
			//따로 지정 해줄 필요 없이 바로 배열로.
			
			
			sum+=arr[i-1];
			
			if(arr[i-1]>max) {
				max=arr[i-1];
			}
			if(arr[i-1]<min) {
				//else if로 if랑 묶으면 위에가 참일때 밑에 값은 보지 않아서 안된다
				min=arr[i-1];
				}
			}
		avg=(double)sum/arr.length;
		System.out.println("입력된 점수: "+Arrays.toString(arr)+" ");
		System.out.println("최고점 : "+max);
		System.out.println("최저점 : "+min);
		System.out.println("총합 : "+sum);
		System.out.println("최고점 : "+avg);
	}

1번째 입력>>70
2번째 입력>>60
3번째 입력>>50
4번째 입력>>30
5번째 입력>>90
입력된 점수: [70, 60, 50, 30, 90] 
최고점 : 90
최저점 : 30
총합 : 300
최고점 : 60.0

 

 

이차원배열

 

이차원배열 예제

		// 모르겠으면 써보고 반복되는 곳들을 반복문으로 줄여나가라
		/*
		 * for (int i = 0; i < arr.length; i++) { 
		 * arr[0][i]=num++;
		 *  for (int i = 4; i >=0; i--) {
		 *   arr[1][i]=num++;
		 *    }
		 * 
		 * for (int i = 0; i < arr.length; i++)  {
		 *  arr[2][i]=num++; 
		 *  }
		 * 
		 * for (int i = 4; i >=0 ; i--) {
		 *  arr[3][i]=num++; }
		 * for (int i = 0; i < arr.length; i++) {
		 *  arr[4][i]=num++; 
		 *  }
		 */

		int[][] arr = new int[5][5];
		int num = 21;

		
		//for문을 2개로 줄일 수 있다. if문에 따라 뒤쪽의 i값을 조절하게 해줘서 줄임
		for (int j = 0; j < arr.length; j++) {
			for (int i = 0; i < arr[j].length; i++) {
				if (j % 2 == 0) {
					arr[j][i] = num++;// 정방향

				} else {
					arr[j][4 - i] = num++; // 역방향
				}

				// int i=4;가 아니라 이렇게 해주면 변해도 수정안해도 된다.

			}
		}

		// ctrl+/ 해당 전체 주석
//		for(int j=0;j<arr.length;j++) {
//			if(j%2==0) {
//		for (int i = 0; i < arr[j].length; i++) {
//			arr[j][i]=num++;
//		}
//			}else {
//		
//		for (int i = arr[j].length-1; i >=0 ; i--) {
//	       // int i=4;가 아니라 이렇게 해주면 변해도 수정안해도 된다.
//			arr[j][i]=num++;
//		}
//			}	
//		}

		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[i].length; j++) {
				System.out.print(arr[i][j] + "\t");
			}
			System.out.println();
		}

 

반응형

'빅데이터 서비스 교육 > Java' 카테고리의 다른 글

Java OOP  (0) 2022.05.06
Java 메소드  (0) 2022.05.03
Java 반복문  (0) 2022.05.02
Java 연산자, 조건문  (0) 2022.05.02
Java 개요 및 변수  (0) 2022.05.02