Javaベース(配列)

3409 ワード

3月24日内容まとめ-2
先生は突然たくさんの理論を話しました.
並びが簡単にスペースを決めて、値段をずらりと並べました.見ればいいんじゃないかな?!
package study_0324;

public class study_0324_02 {

	public static void main(String[] args) {
		
//참조타입은 자동적으로 null값으로 초기화 됨 아직 참조할 객체가 없다 라는 뜻, 배열또한 자동적으로 0으로 초기화 됨
		
/*배열
 * 1.배열은 같은 타입의 데이터만 저장 할 수 있다.
 * 2.배열은 선언과 동시에 저장할 수 있는 데이터 타입이 결정
 * 3.한번 생성된 배열은 그것이 실행되는 동안 길이를 늘리거나 줄일 수 없다.
 * 4.배열 개수를 변경하려면 새로운 배열을 생성하고, 기존 배열 항목을 새 배열로 복사한다.
 * 
 * 보통은 빈공간 아무곳에 값을 저장 하는데, 배열은 같은타입을 연속적으로 만들어서 값을 저장해줌
 * int그릇을 연속적으로 생성, double을 연속적으로 생성
 * 배열은 한번 생성되면 그 길이나 크기를 늘일수 없기때문에 늘이고 싶으면
 * a배열(4크기)에 4개값을 b배열(10크기) 새로 생성하고,a배열 4개값을 복사하고 나머지6개 공간을 추가로 쓴다.
 * 
 * 배열선언
 * 1.배열 변수 선언
 * 타입[]변수이름; ==타입 변수이름[]; 둘다 사용가능함
 * 변수이름=new 타입[길이]; 
 * 
 * int[]score;
 * score=new int[5]; 5개크기의 공간 생성
 * int[]score=new int[5]; 이렇게 써주기도함 위에와 같음
 * 
 * int[]score=new int[5]{10,20,30,40,50} 배열선언과 값 선언
 * int[]score={10,20,30,40,50} 배열선언과 동시에 값 선언 담아줌, 꼭 먼저 new객체를 생성한다.
 * 
 * int[]score01;
 * score01=new int[]{10,20,30,40}
 * 
 * 배열은 생성과 동시에 자동적으로 자신으 타입에 해당하는 기본값으로 초기화 된다.
 * int[]score=new int[5] 생성시 각배열 공간마다 int타입인 0을 임의로 담아놓는걸 초기화라고 한다.
 * 
 *int[]score=new int[]{10,20,30,40,50} 배열길이 선언안해줘도 값을갯수를 보고 자동적으로 배열공간생성
 *int[]score={10,20,30,40,50} 간단하게 이렇게 선언해줘도 됨
 *
 *int[]score;
 *score={10,20,30,40,50} 컴파일 에러남. 왜?? 선언후바로 값넣는거는 되지만 선언따로 값따로 넣을시 아래와 같이 new 객체 생성
 *
 *int[]score;
 *score=new int[]{10,20,30,40,50}  컴파일 에러안남.
 *
 *
 *
 */
		
		int[]score= new int[5]; //정수형 5개의 공간을 생성!!
		
		score[0]=10;  //각인덱스에 값을 담아주는 작업
		score[1]=20;  //값을 입력하는 작업이 번거로움
		score[2]=30;
	
		for(int i=0;i<5;i++) { //for문을 이용하여 배열 값담아주기
			score[i]=(i*10)+10;
			System.out.printf("score[%d]=%d\n",i,score[i]); //배열담고 출력해줌
		}
		
		//for문을 이용하여 배열 값담아주기
		for(int i=0;i<score.length;i++) { //score.length 배열의 길이를 이용하여 범위써줌
			score[i]=(i*10)+10; 
		}
		
		

	}

}
package study_0324;

import java.util.Scanner;

public class study_0324_03 {

	public static void main(String[] args) {
		/*키보드로 5개의 정수를 입력 받아 배열요소를 초기화 하고
		 * 5개의 정수값을 합한 후 평균값을 구하시오
		 */

	/*	Scanner scan = new Scanner(System.in);
		
		int []score = new int[5];
		int sum=0;
		double avg=0.0;
		
		
		for(int i=0;i<score.length;i++) {
			System.out.println("정수를 입력하세요");
			score[i]=scan.nextInt();
			sum+=score[i];
			}
		avg=(double)sum/5;*/
		
		
		
		
//문2) int[]num={23,85,15,96,78,100,55,69,77} 최대값과 최소값 구하기
		
	/*	int max=0;
		int min=999;
		
		int[]num={23,85,15,96,78,100,55,69,77};
		
		for(int i=0;i<num.length;i++) {
			if(max<num[i])max=num[i];
			if(min>num[i])min=num[i];
		}
		System.out.println(max);
		System.out.println(min);*/
		
		
//문3) num01배열에 => 0 ~ 9 숫자를 담고, 이것을 섞어서 출력
		
		/*int [] num01=new int[10];
		
		
		for(int i= 0; i< num01.length; i++) {
		      num01[i]= (int)(Math.random()* 10);

		      for(int j= 0; j<i ; j++) {
		         if(num01[i]== num01[j])
		             i--;
		      }
		   }
		  
		for(int i= 0; i< num01.length; i++) {
			System.out.println(num01[i]);
		}*/
	}

}