본문 바로가기
Study/POWER JAVA(기본서)

POWER JAVA 1장 프로그래밍 문제 3번 문제 FOR문 연습_3

by prlkt5200 2022. 8. 2.
반응형

이제 다이아 모양 찍기까지 얼마 안남았습니다....

별 것 아닌 것 같은데도 신경쓸 게 굉장히 많네요ㅋㅋㅋㅋ...

여기서 제가 크게 착각하고 있던 것이 있었는데 

FOR문을 중첩해서 사용할 경우 외부 FOR문을 통해 내부 FOR문 으록 들어가 실행하고,

내부 FOR문이 다 실행이 되면 다시 외부 FOR문으로 돌아가서 

증감할 것 해주고, 똑같이 내부 FOR문 처음부터 반복수행하는 것인데

 

저의 경우 외부 FOR문에서 증감식에서 증감했다고 하면 내부에서도 동일하게 증감해주고

FOR문을 수행하느 것으로 착각을 했습니다

 

즉 요약해서 외부 FOR문 반복 수행 시작 - 내부 FOR문들 순차척으로 반복 수행할 것 다 해주기 - 외부 FOR문까지 

마무리! 

그리고 다음 과정 있으면 수행! 이었네요ㅎㅎ

 

이것 때문에 삽질했는데, 이제야 홀가분해서 기분이 좋네요!! ㅋㅋㅋㅋㅋㅋ 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
public class Patten2 {
 
    public static void main(String[] args) {
 
        int num = 5;
        // 별 찍기를 몇번 정도 반복 수행할 것인지 생각해서 지정한다.
        // 이곳에서 num으로 변수를 선언하고 변수명을 아래 for문에 대입해 사용하면
        // 위에서 num값만 수정해주면 다른 for문도 수정 가능하다.
 
        for (int i = 0; i < num; i++) {
            // 여기서 num을 변수로 하는 for문을 짜준다.
 
            for (int j = 0; j < i; j++) {
                System.out.print(" ");
                // 이 for문은 별을 찍기 전에 공백을 만들어주는 식이다.
                // print에서 (" ");은 공백을 만들어주고 붙여라
                // ("");은 출력될 값은 없은 그냥 붙여서 출력하라는 의미이다.
            }
            for (int k = num; k > i; k--) {
                System.out.print("*");
                // 위에 for 문이 조건이 충족 안되면 바로 이 for문으로 오면
                // 아래에 있는 이 for문은 별을 찍어주는 역할의 식이다.
            }
            System.out.println();
            // 개행이다. println에서 (); = ("");은 같은 의미이다.
            // 아무 값도 출력 말고 개행
        }
 
        System.out.println("======================");
 
        for (int l = 5; l > 0; l--) {
            for (int m = 0; m < l; m++) {
                System.out.print("*");
            }
            System.out.println();
        }
        System.out.println("======================");
 
        // 이 for문은 줄반복을 의미한다.
        for (int s = 1; s <= 4; s++) {
 
            // 내부 1번 for문은 공백을 반복하는 for문이다.
            for (int t = 5 - s; t > 0; t--) {
                System.out.print(" ");
                // 여기서 내가 크게 착각한 점이 있다!
                // for문을 한번 돌리고 나서 외부 for문은 값이 증감되서 실행이 되지만
 
                // 내부 for 문은 처음부터 다시 실행된다
                // 즉 요약하면 외부 for문 실행- 내부 for문 반복수행 완료- 다음 for문도
                // 똑같이 반복 수행 완료- 그리고 처음 외부 for문에서 숫자 증감. 이 순서이다.
                // 다음부터 이것을 잘고려하자!
            }
 
            // 내부 2번 for문은 별을 반복하는 for문이다.
            for (int u = 1; u <= s * 2 - 1; u++) {
                System.out.print("*");
            }
 
            System.out.println("");
        }
    }
}
 
cs
반응형