프로그래밍/Java 공부

배열, foreach문

개발계발게발 2021. 5. 25. 17:50
반응형

배열 Array

index, length
 위치   길이
 
배열은 객체
객체는 기본적으로 속성과 메소드를 가지고있다.
배열만 유일하게 속성만 가지고 있다.
 
배열은 동일(유사)한 타입의 데이터를 하나의 묶음 형태로   관리하기 위해 사용되는 자료구조
 
속성은 배열의 길이를 나타내는 length 객체의 속성과 메소드 등을 호출할때는 .(점)을 이용한다.

 

배열의 선언

		int[] arr01 = new int[10];	//int 타입의 길이가 10인 배열 선언
		double[] dArr01 = new double[5]; // doulbe 타입의 길이가 5인 배열 선언
		char[] cArr01 = new char[15];	// char타입의 길이가 15인 배열 선언
        
         	  //int arr02[] = new int[5];	// 사용가능
		int[] arr02 = new int[5];	// 길이는 생성할때만 사용
        
			//생성식 = 바로 값을 넣기 가능
		int[] arr02 = new int[] {10, 11, 12, 13, 14, 15, 16, 17};
		int[] arr03 = {100, 200, 300, 400, 500};

 

배열 출력

Arrays.toString() 함수

 

Arrays.toString(변수명);

 

		arr02[0] = 10;	//index 값 호출, 대입 할때만 사용
		// 1  2  3  4  5 = 길이 length
		// 0  1  2  3  4 = 위치 index
		// 10
		System.out.println(arr02[0]);	//10
		System.out.println(arr02[1]);	//?
		System.out.println(arr02[2]);	//?
		System.out.println(arr02[3]);	//?
		System.out.println(arr02[4]);	//?
		//System.out.println(arr02[5]);	// index 밖으로 컴파일 에러
		
		System.out.println(arr02);//배열 주소값 [I@53bd815b
		System.out.println(Arrays.toString(arr02));//[10, 0, 0, 0, 0]

 

배열의 길이

변수명.length

 

int length = arr02.length;	//동일
System.out.println(arr02.length);// 길이는 int

 

        //arr01에 1부터 10까지 저장
		for (int i = 0; i < arr01.length; i++) {
			arr01[i]= i+1;
		}		
		System.out.println(Arrays.toString(arr01));//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
		
        for(int i = 0; i<arr01.length; i++) {//역순 저장
			arr01[i]= arr01.length-i;
		}
//		int cnt =0;
//		for (int i = 10; i > 0; i--){
//		 	 arr01[cnt++] = i;
//		}
		
		System.out.println(Arrays.toString(arr01));//[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

 

foreach문

 

향상된 for문

 

			for (int i = 0; i < arr03.length; i++) {
				System.out.println(arr03[i]);	//index에 넣어서				
			}
			
			System.out.println("foreach문");
			
			for (int i : arr03) {	//어떤 집합을 열어서 그 요소를 반환
				System.out.println(i);
			}
			
			double[] dArr = new double[5];
			for (double d : dArr) { 
				System.out.println(d);
			}

 

 

시저 암호는, 고대 로마의 황제 줄리어스 시저가 만들어 낸 암호인데, 예를 들어 알파벳 A를 입력했을 때, 그 알파벳의 n개 뒤에 오는(여기서는 예를 들 때 3으로 지정하였다)알파벳이 출력되는 것이다. 예를 들어 바꾸려는 단어가 'CAT"고, n을 5로 지정하였을 때 "HFY"가 되는 것이다.

 

import java.util.Arrays;
import java.util.Scanner;

public class Array03 {
	public static void main(String[] args) {
		char[] cat = { 'A', 'Z', 'Y' };
		Scanner sc = new Scanner(System.in);
		int input = sc.nextInt();
		input = input%26; // 1회전 이상시 대비

		for (int i = 0; i < cat.length; i++) {	
			cat[i] = (char) (cat[i] + input);
			if (cat[i] > 'Z') {
				cat[i] =(char) (cat[i] - 26);
			}		
		}
		System.out.println(Arrays.toString(cat));
		sc.close();
	}
}

 

스캐너로 입력받은 문자열 배열로 넣기

 

char[] 변수명 = 변수명.toCharArray();

 

		//스캐너로 입력받은 문자열 배열로 넣기
		System.out.println("문자열 입력 : ");
		String input2 = sc.next();
		char[] string2Char = input2.toCharArray();
							//문자열을 하나하나 분해하여 넣는다
		System.out.println(Arrays.toString(string2Char));

 

반응형