코린이
article thumbnail
Published 2023. 1. 26. 15:09
JAVA / 반복문 for문 개발/JAVA

저번 게시글에서는 while문을 살펴봤다. 이번엔 for문을 살펴볼 차례!

for문은 '횟수가 정해져있는'반복 명령을 실행 할 때 주로 사용한다. 

int  a = 0;
while (a < 8) {
	System.out.print(a + "\t");
	a++;
}

전에 사용했던 while문

for (int i = 0; i < 8; i++) {
	System.out.print(i + "\t");
}

을 똑같이 for문으로 쓰게되면 이렇게 간단히 두 줄로 작성 할 수 있게 되었다! for문 안의 조건에서 변수, i의 조건, i의 증가까지 모두 지정을 해주었기 때문에 가능한 일이다. 하지만 전에 사용했던 while문처럼 언제 끝날지 모르는 반복문은 for문을 사용해주기 보다는 while문을 사용해주는게 적합하다.

for문을 배울 때 가장 기초적인 문제로 구구단과 별찍기가 있다. 이중포문을 사용한 문제인데, 일단 구구단 먼저 작성해보도록 하겠다. (편의상 2단부터 5단까지, 5까지만 곱해보도록 하겠다.)

for (int i = 2; i <= 5; i++) {
	System.out.println(i + "단");
	for (int j = 1; j <= 5; j++) {
		System.out.print( i + " X " + j + " = " + (i*j) +  "\t");
	}
	System.out.println();
}

이중for문을 돌릴 때 생각해야하는 것은 i가 한 번 돌 때  j가 몇 번 도느냐를 생각해야한다.

5단까지 있는 구구단의 경우 i 가 한 번 돌 때 j 는 5번 돌고 다시 i로 돌아가야하기 때문에 j가 1부터 5까지의 범위를 갖게 된다. 

그럼 이중for문의 꽃!! 를 한 번 해보겠다! (5줄 기준)

for(int i = 0; i < 5 ; i++) {	
	
	for (int j = 0; j <= i; j++) {
		System.out.print("♥ ");
	}			
	
	System.out.println("");
}

 

첫 번째 for문(편의상 i for문)은 그저 줄바꿈을 해준다고 생각을 하고 찍어보자. i가 0일 때 j가 한 번 돌아야 맨 위에 하트가 하나 생길 것이다. i가 1일 때는 j가 2번, i가 2일 때 j가 3번 ... 이런 식으로 생각해본다면 어렵지 않게 별을 찍을 수 있을 것이다! 

오른쪽 아래가 직각인 삼각형을 한 번 찍어보겠다.

for(int i = 0; i <= 4; i++) {
	
	for (int j = 1; j <= i; j++) {
		System.out.print("  ");
	}
	
	for(int j = 4; j >= i ; j--) {
		System.out.print("♥ ");
	}
	
	System.out.println("");
}

이 때는 공백 옆에 하트가 있어야 하기 때문에 같은 들여쓰기 자리에 공백과 하트의 for문을 작성해주면 공백 옆에 하트가 나타날 수 있다! 공백은 위의 왼쪽아래가 직각인 삼각형으로 만들어주고, i의 수에 따라 j의 개수를 하나씩 줄여나가면 ~ 저런 모양의 별이 나타나게 된다!

이번엔 가운데정렬인 삼각형을 한 번 찍어보겠다!

for(int i = 0; i <= 4; i++) {

	
	for(int j = 4; j > i ; j--) { //왼쪽 공백
		System.out.print("  ");
	}
	
	for (int j = 0; j <= i; j++) { //오른쪽아래직각삼각형
		System.out.print("♥ ");
	}
	
	for (int j = 0; j < i; j++) { //왼쪽아래 직각삼각형
		System.out.print("♥ ");
	}
	
	
	System.out.println("");
}

요 모양 같은 경우에는 꼭대기에 하나, 나머지가 둘 씩 커지는 삼각형인데 

나는 이렇게 섹터를 나눠서 했다! for문은 내가 경험해본 바로는 별찍기로 연습하는게 가장 연습하기 좋은 것 같다! 애매하게 마무리 끝!

반응형
profile

코린이

@코인아님

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!