반응형
*을 프린트해서 삼각형 모양 만들기
- 반복문인 for문을 사용한다면?
- 첫루프에서 공백이 출력되는 개수와 *이 출력되는 개수를 조절하면, 다양한 삼각형 모양을 만들 수 있다.
설계하기
- for문을 통해서 변수 i가 증가함에 따라 출력되는 줄(행)의 개수도 늘어나도록 설계
- 반복횟수가 곧 줄의 개수
- i가 증가하기 전에 줄을 바꾸기
for(int =i; i < 5; i++) {
//실행문
}
System.out.println(); // 줄 바꾸기
- for문 안에 또 for문을 넣어서 한 줄 안에서도 반복을 통한 프린트 출력 (이중루프)
- 공백을 출력하기 위한 for문
- *을 출력하기 위한 for문
삼각형 만들기
1. 직각 삼각형
for(int i = 0; i < 5; i++){ // 5줄 만들기 (루프 5번)
/* i는 고정, j는 루프
* i=0일 때: j=0 (1번 실행)
* i=1일 때: j=0, 1 (2번 실행)
* i=2일 때: j=0, 1, 2 (3번 실행)
* i=3일 때: j=0, 1, 2, 3 (4번 실행)
* i=4일 때: j=0, 1, 2, 3, 4 (5번 실행)
*/
for(int j = 0; j <= i; j++){
System.out.print("*"); // *을 출력, 줄 바꾸지 않고 한 줄에 출력 위해 print 이용(루프를 통해 한 줄에 출력되는 *의 개수 누적)
}
System.out.println(); // i가 하나 끝나면, 줄을 바꿔서(println) 다음 행을 출력할 준비하기
}
2. 역직각삼각형
for(int i = 0; i < 5; i++){ // 5줄 만들기 (루프 5번)
/* i는 고정, j는 루프
* i=0일 때: 조건 만족X (0번 실행)
* i=1일 때: j=0 (1번 실행)
* i=2일 때: j=0, 1 (2번 실행)
* i=3일 때: j=0, 1, 2 (3번 실행)
* i=4일 때: j=0, 1, 2, 3 (4번 실행)
*/
for(int j = 0; j < i; j++){ // j < i 로 < 을 사용함으로써 i=0일 때는 출력이 안되도록
System.out.print(" "); // 공백을 출력, 줄 바꾸지 않고 한 줄에 출력 위해 print 이용(루프를 통해 한 줄에 출력되는 공백의 개수 누적)
}
/* i는 고정, k는 루프
* i=0일 때: k=0, 1, 2, 3, 4 (5번 실행)
* i=1일 때: k=0, 1, 2, 3 (4번 실행)
* i=2일 때: k=0, 1, 2 (3번 실행)
* i=3일 때: k=0, 1 (2번 실행)
* i=4일 때: k=0 (1번 실행)
*/
for(int k = 0; k < (5 - i); k++){ // k < (5-i)로 조건을 주어 개수가 역으로 나오도록
System.out.print("*"); // *을 출력, 줄 바꾸지 않고 한 줄에 출력 위해 print 이용(루프를 통해 한 줄에 출력되는 *의 개수 누적)
}
System.out.println(); // i가 하나 끝나면, 줄을 바꿔서(println) 다음 행을 출력할 준비하기
}
3. 피라미드
for(int i = 0; i < 5; i++){ // 5줄 만들기 (루프 5번)
/* i는 고정, k는 루프
* i=0일 때: k=0, 1, 2, 3 (4번 실행)
* i=1일 때: k=0, 1, 2 (3번 실행)
* i=2일 때: k=0, 1 (2번 실행)
* i=3일 때: k=0 (1번 실행)
* i=4일 때: 조건 만족X (0번 실행) -> 공백 여부 결정
*/
for(int k = 0; k < (5 - i-1); k++){
System.out.print(" "); // 공백을 출력, 줄 바꾸지 않고 한 줄에 출력 위해 print 이용(루프를 통해 한 줄에 출력되는 공백의 개수 누적)
}
/* i는 고정, j는 루프
* i=0일 때: j=0 (1번 실행)
* i=1일 때: j=0, 1, 2 (3번 실행)
* i=2일 때: j=0, 1, 2, 3, 4 (5번 실행)
* i=3일 때: j=0, 1, 2, 3, 4, 5, 6 (7번 실행)
* i=4일 때: j=0, 1, 2, 3, 4, 5, 6, 7, 8 (9번 실행)
*/
for(int j = 0; j < (2*i+1); j++){
System.out.print("*"); // *을 출력, 줄 바꾸지 않고 한 줄에 출력 위해 print 이용(루프를 통해 한 줄에 출력되는 *의 개수 누적)
}
System.out.println(); // i가 하나 끝나면, 줄을 바꿔서(println) 다음 행을 출력할 준비하기
}
4. 역피라미드
for(int i = 0; i < 5; i++){ // 5줄 만들기 (루프 5번)
/* i는 고정, k는 루프
* i=0일 때: 조건 만족X (0번 실행)
* i=1일 때: k=0 (1번 실행)
* i=2일 때: k=0, 1 (2번 실행)
* i=3일 때: k=0, 1, 2 (3번 실행)
* i=4일 때: k=0, 1, 2, 3 (4번 실행)
*/
for(int k = 0; k < i; k++){
System.out.print(" "); // 공백을 출력, 줄 바꾸지 않고 한 줄에 출력 위해 print 이용(루프를 통해 한 줄에 출력되는 공백의 개수 누적)
}
/* i는 고정, j는 루프
* i=0일 때: j=0, 1, 2, 3, 4, 5, 6, 7, 8 (9번 실행)
* i=1일 때: j=0, 1, 2, 3, 4, 5, 6 (7번 실행)
* i=2일 때: j=0, 1, 2, 3, 4 (5번 실행)
* i=3일 때: j=0, 1, 2 (3번 실행)
* i=4일 때: j=0 (1번 실행)
*/
for(int j = 0; j < 2*(5-i)-1; j++){
System.out.print("*"); // *을 출력, 줄 바꾸지 않고 한 줄에 출력 위해 print 이용(루프를 통해 한 줄에 출력되는 *의 개수 누적)
}
System.out.println(); // i가 하나 끝나면, 줄을 바꿔서(println) 다음 행을 출력할 준비하기
}
이와 같이 반복문의 조건과 공백을 먼저 프린트할지, 별표(*)를 먼저 프린트할지에 따라서 모양을 다르게 만들 수 있습니다.
조건의 식을 통해서 반복되는 횟수를 조정하는 것을 생각하면 됩니다.

반응형
'Java' 카테고리의 다른 글
Java 자바 설치하기 (JDK 설치) (0) | 2024.08.09 |
---|---|
이클립스(eclipse) 설치 및 설정하기(JAVA를 이용하기 위한 강력한 툴) (0) | 2024.08.08 |