Java

TIL 12 | Java - 반복문 (중첩 For문, 향상된 For문)

개발 공부 2022. 9. 28. 18:35

중첩 For문

예제 01)

		//1~9
		for(int i = 1; i <= 9; i++) {
			System.out.println(i);
			for(int j = 1;j <= 9; j++) {
				
				System.out.println(i+"-"+j);
			}
			System.out.println("-----------------------------");
		}

예제 02)

		//회전할때마다 횟수가 변하는 중첩 반복문
		/*
		 * 별찍기 (피라미드모양)
		 *       *
		 *      ***
		 *     *****
		 *    *******
		 *   ********* 
		 */
		int star = 5;
		for(int i = 1; i <= star; i++) { //5줄 출력 
		
		for(int j = 1; j <= star-i; j++) {  //하나씩 적게 공백출력
			System.out.print(" ");
		}
		for(int j = 1; j <=i*2-1; j++) { //별 출력 1,3,5,7,9
			System.out.print("*");
		}
			System.out.println();
	
			
	
		}
		
		System.out.println("-------------------------");
	int star2 = 5;
	for(int i = 1; i <= star2; i++) {
		for(int j = 1; j <= i-1; j++) {  //하나씩 많게 공백출력
			System.out.print(" ");
		}
		
		for(int j = 9; j >= i*2-1; j--) { //int j=1;j <= 2*(star-i) + 1; j++
			
			System.out.print("*");
		}
		
		System.out.println();
	}

예제 03)

//입력받은 수가지 소수를 출력.
		//소수 -> 나누어 덜어지는 수가 1과 자기자신인 수
		//예) 5 -> 2,3,5
		//입력 받은 수가지 반복하고, 각 수를 자기자신가지 나누면서 약수의 개수가 2개인 수
		
		Scanner scan = new Scanner(System.in);
		System.out.println("정수>");
		int num = scan.nextInt();
		
		for(int i = 1; i <= num; i++) {
			
			int count = 0; //카운트에 대한 초기값
			for(int j = 1; j <= i;j++) {//i값에 따라 돌아가는 횟수 달라짐
				if(i % j == 0) {
					count++;
				}
				
				System.out.println(i + "-" + j);
			}
			if(count == 2) {
				System.out.println(i);
			}
		}

향상된 For 루프

		int[] arr = {1,2,3,4,5};
		//일반for
//		for(int i = 0; i < arr.length; i++) {
//			System.out.println(arr[i]);
//		}
		
		//향상된 for
		for(int a : arr) {
			System.out.println(a);
		}
		
		System.out.println("------------------");
		
		String[] sArr = {"월", "화", "수", "목", "금", "금", "금"};
		for(String b : sArr) {
			System.out.println(b);
		}
		
		System.out.println("------------------");
		
		//배열 요소들의 합게와 평균을 소수 2자리까지만 출력
		int[] score = {34, 15, 16, 18, 20};
		int sum = 0;
		
		for(int X : score) {
			sum += X;
//			for(int i = 0; i <= score.length; i++) {
//				
////				X += score[i];
//				
//			}
			
		}
		System.out.println(sum);//합계
		System.out.println((double)sum/score.length);//
		System.out.printf("평균:%.2f\n",(double)sum/score.length);//
		
		//소수 2자리까지 출력하는법
		//(1)printf
		//(2)문자열로 치환 후 다시 또 변환