[풀스택과정] JAVA 6장 배열

개발자지니!
|2023. 1. 12. 18:21
728x90
728x90

* 이 글은 제가 공부하기 위해 최대한 사실에 입각해 내용을 적으려고 하지만 일부 내용들이 정확하지 않을 수 있습니다.

   혹시나 잘못된 부분이 있으면 너그럽게 이해해주시고 피드백 부탁드려요!

 


5.3.5 반복문의 중지(break 와 continue)

- 반복문에 종속

package chapter05;

public class BreakEx {
	public static void main(String[] args) {
		
		for (int i=0; i < 10; i++) { 
			// 조건식(i < 10)을 지워도 해당 코드 실행 가능
			// i가 지속해서 증가하면서 5를 만나면 braek가 되기 때문
			if ( i == 5) {
				break;
			}
			System.out.println(i);
		}
	}
}
package chapter05;

public class BreakEx2 {
	public static void main(String[] args) {
		
		for (int i =0; i< 5; i++) {
			for(int j=0; j<5; j++) {
				if (j ==3) {
					break;
				}
				System.out.println("i="+i+", j="+j);
				
			}
		}
			
	}
}
package chapter05;

public class BreakEx3 {
	public static void main(String[] args) {
		
		target:for (int i =0; i< 5; i++) { // target => label (중요치않음)
			for(int j=0; j<5; j++) {
				if (j ==3) {
					break target;
				}
				System.out.println("i="+i+", j="+j);
				
			}
		}
			
	}
}

 

5.3.6 무한반복문 만들기

// for문 이용
for ( ; ; ) {
      실행문;
}

// while문 이용
while (true) {
      실행문;
}

// do~while문 이용
do {
     실행문;
} while (true);
package chapter05;

import java.util.Scanner;

public class MenuEx {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		boolean run = true;
		while(run) {
			System.out.println("1. 고객조회 2. 고객등록 3. 정보수정 4. 종료");
			int input = scanner.nextInt();
			switch (input) {
			case 1:
				System.out.println("고객 xxx의 정보가 조회되었습니다.");
				break;
			case 2:
				System.out.println("고객 xxx의 정보가 등록되었습니다.");
				break;
			case 3:
				System.out.println("고객 xxx의 정보가 수정되었습니다.");
				break;
			case 4:
				System.out.println("프로그램이 종료됩니다.");
				run = false;
				break; // label로 해도 됨
			default:
				break;
			}
		}
	}
}

5장 연습문제

package chapter05;

public class Excercise1 {
	public static void main(String[] args) {

		int sum = 0;
		for (int i = 0; i<=100; i++) {
			// 방법 1
//			if(i % 5 == 0) {
//				sum += i;
//			}
			// 방법 2(삼항연산)
//			sum += i % 5 == 0 ? i : 0;
		}
		System.out.println("5의 배수의 합계는 " + sum);
	}
}
package chapter05;

public class Excercise2 {
	public static void main(String[] args) {
		
		int evenSum = 0;
		int oddSum = 0;
		
		for(int i=1; i<=100; i++) {
			if ( i % 2 == 0) {
				evenSum += i;
			}
			else {
				oddSum += i;
			}
		}
		System.out.println("짝수의 합계는 "+evenSum);
		System.out.println("홀수의 합계는 "+oddSum);
	}
}
package chapter05;

public class Excercise3 {
	public static void main(String[] args) {
				
		for(int x=1; x<=6; x++) {

			for (int y=1; y<=6; y++) {

				if (x+ y == 6) {
					System.out.printf("(%d, %d)\n", x,y);
				}
				
			}
		
		}
		
	}
}
package chapter05;

public class Excercise4 {
	public static void main(String[] args) {
		for(int i=0; i<5; i++) {
			for(int j=0; j<i+1; j++) {
				System.out.printf("*");
//				System.out.println("("+ i + +","+ j + ")");
				
			}
			System.out.println();
		}
		
	}
}
package chapter05;

public class Excercise5 {
	public static void main(String[] args) {
//		for(int i=5; i>0; i--) {
//			for(int j=0; j<i; j++) {
//				if (i>5 && j<5) {
//					System.out.printf(" ");	
//				}
//				else {
//					System.out.printf("*");
//				}
//				
//			}
//			System.out.println();
//		}
		for(int i =0; i<5; i++) {
			for(int j=0; j<5; j++) {
				if(i+j <= 4) {
					System.out.print("*");
				}
			}
			System.out.println();
		}
		
		
	}
}
package chapter05;

public class Excercise6 {
	public static void main(String[] args) {
		for(int i=0; i<5; i++) {
			for(int j=0; j<9; j++) {
				System.out.print("(" + i + ","+j + ")");
//				if (i<=j && j == 4) {
//					System.out.print("(" + i + ","+j + ")");
//				}
//				else if (i+j == 4) {
//					System.out.print("(" + i + ","+j + ")");
//				}
					
			}
			System.out.println();	
		}
		
	}
}
package chapter05;

public class Excercise7 {
	public static void main(String[] args) {
		// 주사위의 눈 6
		// 횟수
		// Math.random()
		int i=0;
		while(true) { // while(주사위의눈 != 6) {
			int d = (int)(Math.random()*6)+1;
			System.out.println("("+d+")"); // 주사위
//			System.out.println((int)(d*45)+1); // 로또
			i++;
			if(d == 6) {
				System.out.printf("총 주사위 굴린 횟수는 : %d", i);
				break;
			}
//			System.out.println("횟수 : " +  횟수);
		}
			
			
	}
}

 

6장 배열

6.1 배열 선언

데이터 타입[] 변수명;

데이터 타입 변수명[];

 

* 데이터 타입[] 변수명[]; => 동시에 붙이면 2차원 배열이 되니 조심하자!

 

package chapter06;

import java.util.Iterator;

public class ArrEx1 {
	public static void main(String[] args) {
		
		int[] arrInt;
		int arrInt2[] = new int[5];
		// 자바의 지역변수는 반드시 초기화해야함.(변수 선언만 해서는 안됨)
		// C언어의 지역변수는 안할 수는 있으나 문제가 있음
//		System.out.println(arrInt[0]);
		
//		arrInt2[0] =1;
//		arrInt2[1] =2;
//		arrInt2[2] =3;
//		arrInt2[3] =4;
//		arrInt2[4] =5;
		// for문으로 변환
		for (int i = 0; i < arrInt2.length; i++) {
			arrInt2[i] = i + 1;
		}
		
		System.out.println(arrInt2);
		// 런타임 오류, null 포인터 에러
	}
}

6.2 배열 사용

인덱스는 0번부터 시작하기 때문에 마지막 배열의 길이에서 -1 값이 된다.

배열의 길이를 알 수 있는 방법은 배열변수명.length 이다.

package chapter06;

public class ArrEx6 {
	public static void main(String[] args) {
		String[] arrStr = {"홍길동","이순신","김유신","강감찬"};
		
		System.out.println("배열의 길이 :"+arrStr.length);
	}
}
package chapter06;

import java.util.Arrays;

public class ArrEx7 {
	public static void main(String[] args) {
		String[] arrStr = {"홍길동","이순신","김유신","강감찬"};
		
		System.out.println("배열의 길이 : "+arrStr.length);
		
		for(int i =0; i < arrStr.length; i++) {
			System.out.println(arrStr[i]);
		}
		
		System.out.println(arrStr); // 나중에 다시 한번 공부할 내용
		System.out.println(Arrays.toString(arrStr)); // 배열의 내용을 전개해주는 것
	}
}
package chapter06;

public class ArrEx8 {
	public static void main(String[] args) {
		
		int[] number = new int[100];
		
		// 배열 변수에 대입
		for (int i=0; i<number.length; i++) {
			number[i] = i+1;
		}
		
		// 배열 변수 출력
		for (int i = 0 ; i <number.length; i++) {
			System.out.println(number[i]);
		}
	}
}
package chapter06;

public class Lotto {
	public static void main(String[] args) {
		int[] lotto = new int[6];
		
		int idx = 0;
		while (true) {
			int number = (int)(Math.random()*45)+1;
			
			boolean insert = true;
			for (int i=0;i<=idx; i++) {
				if (lotto[i] == number) {
					insert = false;
					break;
				}
			}
			if (insert == true) {
				lotto[idx] = number;
				idx++;
			}
			
			if (idx == 6) break;
		}
		
		for (int i=0; i<lotto.length;i++) {
			System.out.println(lotto[i]);
		}
	}
}
package chapter06;

public class ArrEx9 {
	public static void main(String[] args) {
		
		System.out.println("첫번째 값 :"+args[0]);
		System.out.println("두번째 값 :"+args[1]);
		// 실행시 지정될 아규먼트 (인자 인수라고 표현)
		// 초기값을 가지고 실행
		// 문자열 배열, 공백이 인자의 구분값 홍길동 이순신
	}
}

6.3 다차원 배열

package chapter06;

public class ArrEx10 {
	public static void main(String[] args) {
		
		// 첫번째
		int[][] matrix = new int[3][3];
		
		matrix[0][0] = 1;
		matrix[0][1] = 2;
		matrix[0][2] = 3;
		matrix[1][0] = 4;
		matrix[1][1] = 5;
		matrix[1][2] = 6;
		matrix[2][0] = 7;
		matrix[2][1] = 8;
		matrix[2][2] = 9;
		// [지연][순환]
		
		// 두번째
		int[][] matrix2 = {{10,20,30},{40,50,60},{70,80,90}};
		
		// 세번째
		int[][] matrix3 = {
				{100,200,300},
				{400,500,600, 100, 200},
				{700,800,900}
		};
		
		System.out.println("[첫번째]");
		for(int i=0;i<matrix.length;i++) {
			for(int j=0;j<matrix[i].length;j++) {
				System.out.print(matrix[i][j]+" ");
			}
			System.out.println();
		
		}
		System.out.println();
		System.out.println("[두번째]");
		for(int i=0;i<matrix2.length;i++) {
			for(int j=0;j<matrix2[i].length;j++) {
				System.out.print(matrix2[i][j]+" ");
			}
			System.out.println();
		
		}
		System.out.println();
		System.out.println("[세번째]");
		for(int i=0;i<matrix3.length;i++) {
			for(int j=0;j<matrix3[i].length;j++) {
				System.out.print(matrix3[i][j]+" ");
			}
			System.out.println();
		
		}
	}
}
package chapter06;

import java.util.Arrays;

public class ArrEx11 {
	public static void main(String[] args) {
		int[][][] arrInt = new int[3][3][3];
		
		int value = 0;
		// 값 대입
		for ( int i =0 ; i <= 2; i++) {
			for (int j=0; j <=2; j++) {
				for (int k =0; k <=2; k++) {
					arrInt[i][j][k] = value++;
				}
			}
		}
		
		// 값 대입
		for ( int i =0 ; i <= 2; i++) {
			for (int j=0; j <=2; j++) {
				for (int k =0; k <=2; k++) {
					System.out.print(arrInt[i][j][k]+"\t");
				}
				System.out.println();
			}
		}
		System.out.println(Arrays.deepToString(arrInt));
	}
}
package chapter06;

public class ArrEx12 {
	public static void main(String[] args) {
		
		// 배열 초기화
		// 1. 크기를 통한 초기화
		int[] arr2 = new int[3];
		// 2. 지정된 값을 통한 초기화
		int[] arr = new int[] {1,2,3,4};
		// 선언 = 할당
		// 위처럼 동시에 하면 [] 생략 가능
		int[] arr3 = {1,2,3,4};
		int[] arr4;
//		arr4 = {1,2,3,4};  // 오류 발생
		arr4 = new int[] {1,2,3,4};
		
		int[][] arrInt = new int[3][];
		
		arrInt[0] = new int[] {1};
		arrInt[1] = new int[] {2,3};
		arrInt[2] = new int[] {4,5,6};
		
		for(int i=0; i<arrInt.length;i++) {
			for(int j=0;j<arrInt[i].length;j++) {
				System.out.print(arrInt[i][j]);
				
			}
			System.out.println();
		}
	}
}
728x90
300x250