본문 바로가기

개발자노트

for문)중첩반복문을 이용한 별찍기 (피라미드형) == 행이 증가할수록 공백은 줄어들고 별은 늘어남

package test;

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int num1;

		while (true) { // 무한루프 생성

			System.out.println("정수를 입력하시오");

			num1 = sc.nextInt();

			if (num1 > 0) {

				break; // 올바른 값이 입력되었을 경우 무한루프 종료

			}

			System.out.println("잘못 된 입력");

		}

		for (int i = 0; i < num1; i++) { // 출력할 줄 수를 num1에 받아 실행, 계속 받다가 i가 num1보다 커지면 반복종료

			for (int j = 0; j < num1 - i; j++) { // 공백의 수는 num1부터 시작해 밑으로 갈수록 줄어드니까 증가하는 i 만큼 빼주면된다.

				System.out.print(" ");

			}

			for (int j = 0; j < 2 * i + 1; j++) { // 별이 한 줄에 홀수개만 출력되는 것이라 num1에 x2를 한 뒤 1을 더해주면 홀수개 만큼의 별이 출력

				System.out.print("*"); // 출력할 수를 넘지 않음

			}

			System.out.println("줄바꿈"); // 위 for문 출력 한줄이 끝나서 줄을 바꿔줌

		}

	}

}