MSM8994의 화룡점정 블로그

[JAVA] 역방향으로 별 수를 줄여갈 때 같은코드가 두 번 작성되지 않는 별찍기1 본문

코딩

[JAVA] 역방향으로 별 수를 줄여갈 때 같은코드가 두 번 작성되지 않는 별찍기1

msm8994 2018. 7. 17. 16:30

최대 별 수와 현재 별 수, 그리고 증가/감소 여부만을 아는 변수를 이용하여
같은 반복문을 초기화, 조건, 증감식만 바꿔 작성하지는않은 별찍기1 코드입니다.


int maxStars = 5;		// 최대 별 수
int currentStars = 1;	// 그려야할 별 수
boolean plusSW = true;	// 별 수가 증가해야할지 감소해야할지 알게 하는 논리변수
while(currentStars > 0) {
	// 현재 별 수가 0 초과일 때
	
	for(int colSpc = 1; colSpc <= maxStars-currentStars; colSpc++) {
		System.out.print(' '); // 최대 별 수에서 그려야할 별 수를 뺀 나머지 만큼 공백 표시
	}
	for(int colStar = 1; colStar <= currentStars; colStar++) {
		System.out.print('*'); // 그려야할 별 수만큼 * 표시
	}
	System.out.println();
	
	if(currentStars >= maxStars) {
		// 최대 별 수에 도달하면 이제 별 수가 감소하도록 합니다.
		plusSW = false;
	}
	
	if(plusSW) {
		// 현재 별 수는 증가해야 합니다.
		currentStars++;
	}else {
		// 현재 별 수는 감소해야 합니다.
		currentStars--;
	}
}



결과


Comments