이번엔 자바 for문 중첩을 이용해서
별을 직각삼각형, 삼각형, 마름모로 나타내는 것을 연습해보려고 한다.
1.
*
**
*** ==>출력하기
****
*****
for (int i = 1; i < 6; i++) {
for (int j = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
우선 변수 i는 행의 횟수를 뜻하고, 변수 j는 반복되는 '*'의 갯수를 의미한다.
i 가 한줄 반복 될때마다 j가 1씩 증가하며 적히는데, 조건에 j < i라고 둬서
j가 i보다 작을 때만 '*'이 출력되게 만들었다. 위 코드를 실행 해보면
이렇게 별이 출력된다.
2.
*****
****
*** ==> 출력하기
**
*
for (int i = 1; i < 6; i++) {
for (int j = 6; j > i; j--) {
System.out.print("*");
}
System.out.println();
}
다음은 반대로 출력하는 방법인데
위의 1번의 코드와 비슷한데 변수j 가 5에서 -1까지 떨어지고 j가 i보다 클때만 '*'을 출력한다.
3.
*
**
*** ==> 출력하기
****
*****
for (int i = 0; i < 6; i++) {
for (int j = 5; j > 0; j--) {
if (i < j) {
System.out.print(" ");
} else
System.out.print("*");
}
System.out.println();
}
이것도 크게 바뀌는것 없이 변수j만 바꿔주면 출력된다.
if 문을 사용해서 나타낼 수 있다.
이렇게 출력된다.
4.
*****
****
*** ==> 출력하기
**
*
for (int i = 0; i < 5; i++) {
for (int j = 1; j <= 5; j++) {
if (i < j) {
System.out.print("*");
} else
System.out.print(" ");
}
System.out.println();
}
4번은 j가 1부터 5보다 작을때 1씩 증가하고 j가 1보다 클 때만 '*'을 출력한다.
위를 출력해보면
이렇게 나온다.
5.
이런 모양을 출력하는건데 위의 1 ~ 4번 까지의 적었던 식을 합치면 어렵지 않게 만들 수 있다.
for (int i = 1; i < 6; i++) {
for (int j = 5; j > i; j--) { //위쪽 삼각형
System.out.print(" ");
}
for (int j = 1; j <= i * 2 - 1; j++) {
System.out.print("*");
}
System.out.println();
}
for (int i = 4; i > 0; i--) { //아래쪽 삼각형
for (int j = 5; j > i; j--) {
System.out.print(" ");
}
for (int j = 1; j <= i * 2 - 1; j++) {
System.out.print("*");
}
System.out.println();
}
마름모(다이아몬드 모양은) 삼각형과 뒤집힌 삼각형이 합쳐진 형태 이므로 각각 삼각형 한 쪽 씩 출력하면
마름모 모양이 나온다.
그리고 별은 한줄에 항상 홀수개만 나올수 있기 때문에 i * 2 - 1만 잘 넣으면 충분히 만들어 낼 수 있다.
'개발 > JAVA' 카테고리의 다른 글
[JAVA] 자바 접근 제한자 private (0) | 2021.02.08 |
---|---|
[JAVA]자바 - 배열을 이용하여 아주 간단한 영화 예매하기 만들기 (1) | 2021.02.04 |
상속과 다형성 (0) | 2021.01.05 |
객체 와 클래스 (0) | 2020.12.27 |
제어 흐름 이해하기 (0) | 2020.12.22 |