본문 바로가기

언어/Java

배열 예제

public class ArrayTest { // 글씨색이 보라색인 것은 자바의 예약어를 뜻한다
	public static void main(String[] args) {
    						// String 배열 타입으로 메인메서드의 매개변수가 선언 되어있다
		int[] arr;
		arr = new int[4];
		arr[0] = 10; // 국어점수
		arr[1] = 20; // 수학점수
		arr[2] = 33; // 영어점수
		arr[3] = 40; // 과학점수
		System.out.println(arr.length); // 배열 길이 확인, arr.length(); 괄호X, 결과는 4
        
        int totalScore = 0;
		totalScore += arr[0];
		totalScore += arr[1];
		totalScore += arr[2];
		
        // 위의 new int[4]가 new int[5]로 바뀌면 위의 방식은 죄다 수정/추가가 필요함
		// 코드의 재사용성을 위해 배열의 길이를 위에서 바꿔도
        // length 필드를 사용하면 아래 수정할 필요가 없음
		
        int length = arr.length;		
		for(int i=0; i<length; i++) {
			totalScore += arr[i];
		}
		
		for(int score:arr) {	
			totalScore += score;
            // 위의 for문을 향상된 for문으로 변경, 0번 인덱스부터 마지막까지 반복한다
			// 1씩 증가하지 않거나 일부 인덱스만 사용하면 향상된 for문 사용X
		}
		
		float avg = (float)totalScore / length;
        // 정수/정수 = 결과값 정수니까 
		// 하나라도 float 타입으로 형변환하면 실수 결과 얻을 수 있음
		System.out.println("totalScore=" + totalScore + ", avg=" + avg);

결과

 

 

public class ArrayTest {
	public static void main(String[] args) {
		// 행별 열수 다르게 만들기
		int [][]arrTwo2 = new int[3][]; 
		arrTwo2[0] = new int[1];
		arrTwo2[1] = new int[2];
		arrTwo2[2] = new int[3];
		System.out.println(arrTwo2.length); //3
		System.out.println(arrTwo2[0].length); //1		
		System.out.println(arrTwo2[1].length); //2			
		System.out.println(arrTwo2[2].length); //3
		System.out.println();
		
		// 안에 1~6 순서대로 넣기
		int num = 1;
		int rowLength = arrTwo2.length;
		for(int row = 0; row<rowLength; row++) {
			int colLenght = arrTwo2[row].length;	// 행별로 열의 갯수가 다를 수 있으니 확인 필요
			for(int col = 0; col<colLenght; col++, num++) {
				arrTwo2[row][col] = num;
			}
		}
		
		// 출력하기
		for(int row = 0; row<rowLength; row++) {
			int colLenght = arrTwo2[row].length;	// 행별로 열의 갯수가 다를 수 있으니 확인 필요
			for(int col = 0; col<colLenght; col++) {
				System.out.print(arrTwo2[row][col] + ",");
			}
		}		
	}	
}

결과

 

 

public class ArrayTest { 
	public static void main(String[] args) {
		int []arr1 = {1, 10, 6, 3, 2, 3, 6, 1, 5, 7, 6, 5};
		int []arr2 = new int[10]; //[0]는 1의 출현횟수누적공간
								  //[1]는 2의 출현횟수누적공간
								  //[2]는 3의 출현횟수누적공간
								  //[9]는 10의 출현횟수누적공간
                                  
		System.out.println("숫자의 출현횟수를 출력하시오");
		
//		arr2[arr1[0]-1]++;
//		arr2[arr1[1]-1]++;
//		arr2[arr1[2]-1]++;	

		// 위의 방식을 for문으로        
//		for(int i = 0; i < arr1.length; i++) {
//			arr2[arr1[i]-1]++;
//		}
		
		// 위의 for문 향상된 for문으로
		for(int value:arr1) {
			arr2[value-1]++;
		}
		
		// 이 for문은 i가 필요해서 향상된 for문 불가능
		for(int i = 0; i < arr2.length; i++) {
			System.out.println((i+1)+ "의 출현횟수-" + arr2[i] + "회");
		}
   }
}

결과

 

public class ArrayTest { 
	public static void main(String[] args) {
		int []arr3 = {5, 4, 7, 1, 2};
		System.out.println("최대값을 계산하시오");
		int max = arr3[0];
		
		for(int i = 1; i < arr3.length; i++) {
			if(max < arr3[i]) {
				max = arr3[i];
			}
		}
		System.out.println(max);	
	}
 }

결과

public class ArrayTest { 
	public static void main(String[] args) {
		// 로또 번호 만들기
		int []lotto = new int[6];
		// 1~45 중복되지 않는 숫자
		for(int i = 0; i<lotto.length; i++) {
			lotto[i] = (int)(Math.random()*45+1); // 0.0 <= < 1.0 -> 1<= <46
			for(int j=0; j<i; j++) { //중복확인, 0번 index부터 현재 index 전까지
				if(lotto[i] == lotto[j]) { //중복된 경우
//					continue; // 더 이상 아래 문장을 실행하지 않고, 반복문 처음으로 돌아감.
							// 여기에서는 j=0 반복문으로 돌아감
					i--;
					break;	// 가장 근접한 반복문을 완전히 빠져나옴
				}
//				System.out.println("중복안됨");
			}
		}
		
		for(int value: lotto) {
			System.out.print(value + ",");
		}
		System.out.println();
	}
}

결과

 

 

위의 코드에서 continue와 break;

 

public class Condition{
    public static void main(String []args){     
        String []name = {"가위", "바위", "보"};
        System.out.println("가위바위보게임");
        System.out.print("가위-1, 바위-2, 보-3을 입력하세요:");
        java.util.Scanner sc = new java.util.Scanner(System.in);
        int u = sc.nextInt(); // 사용자가 낸 값
        
        System.out.println("사용자가 낸 값: " + name[u -1]); // 배열을 이용
                   
        int r = (int)(Math.random()*3+1); // 1<= <4 // 컴퓨터가 낸 값
        System.out.println("컴퓨터가 낸 값: " + name[r-1]);

        if(u == r) {
            System.out.println("비겼습니다");
        } else if( u < 1 || u > 3) {
            System.out.println("잘못 입력하셨습니다");
        } else if( u - (r%3) == 1){
            System.out.println("이겼습니다");
        } else {
            System.out.println("졌습니다");
        }
        
        System.out.println();
        
        System.out.print("출생년도를 입력하세요:");
        int year = sc.nextInt();	// 키보드로부터 숫자 값 입력받는다 

        System.out.println(year + "년도에 해당하는 동물을 출력하시오");
        //년도를 12로 나눈 나머지값이 0이면 원숭이, 1이면 닭, 2이면 개, 3이면 돼지,
        //                                    4이면 쥐, 5이면 소, 6이면 호랑이, 7이면 토끼,
        //                                    8이면 용, 9이면 뱀, 10이면 말, 11이면 양

        int mod = year%12;
        // if~else 구문 배열로 변환하세요
      //아래의 if~else구문을 배열로 변환하세요 
        String[] ani = { "원숭이", "닭", "개", "돼지", "쥐", "소", "호랑이", "토끼", "용", "뱀", "말", "양" };
        System.out.println(ani[mod]+"띠입니다");    
   }
}

결과

'언어 > Java' 카테고리의 다른 글

2차원 배열 예제  (0) 2023.07.26
멤버변수와 지역변수  (0) 2023.07.26
이클립스 class 생성법  (0) 2023.07.26
배열  (0) 2023.07.26
반복문 4(do while)  (0) 2023.07.25