Adventure Time - Finn 3
본문 바로가기
JAVA/개념정리

별 찍기 문제 및 디버깅 표

by hyun9_9 2023. 11. 22.

[문제 1]

*

**

***

****

*****

 

디버깅표

a   a<5   i   i<=a
---------------------------
0     T    0     T
             1     F
1     T    0     T
             1     T
             2     F
2     T    0     T
             1     T
             2     T
             3     F

		//문제 1
		for (int a = 0; a < 5; a++) {//총횟수
			//별을 한개부터 늘려가기에 초기식을 0으로 설정한다
			//a만큼 별이 증가하기에 a보다 작다고 설정하고 
			//첫번째 루프를 돌떄 별을 찍기에 작거나 같다고 조건식을 설정한다
			for (int i = 0; i <= a; i++) {
				System.out.print("*");
			}
			System.out.println();
		}

 

 

 

 

 

[문제 2]

*****

****

***

**

*

 

디버깅 표

a    a<5   i    i>a
----------------------
0      T    5     T
              4     T
              3     T
              2     T
              1     T
              0     F
1      T    5     T
              4     T
              3     T
              2     T
              1     F
2      T    5     T
              4     T
              3     T
              2     F 
3      T    5     T
              4     T
              3     F
4      T    5     T
              4     F
5      F

 

//문제 2
		for (int a = 0; a < 5; a++) {// 총 횟수
			//별을 줄여나가야하기에 초기식을 5로 지정한다
			//a만큼 별을 줄여가야하기에 a보다 클때로 조건식을 잡고 
			//처음부터 별을 지우면 안되기에 크거나 같다가 아닌
			//크다로 설정한다
			for (int i = 5; i > a; i--) {
				System.out.print("*");
			}
			System.out.println();
		}

 

 

[문제 3]

*****

 ****

  ***

   **

    *

방법 1

디버깅 표

a    a<5     j     j<a      i      i>a
---------------------------------------
0     T       0      F
                                 5        T
                                 4        T
                                 3        T
                                 2        T
                                 1        T
                                 0        F
1     T      0       T
               1       F
                                 5        T
                                 4        T
                                 3        T
                                 2        T
                                 1        F
2     T      0      T
               1      T
               2      F
                                5       T
                                4       T
                                3       T
                                2       F
3    T     0      T
             1      T
             2      T
             3      F
                                5      T
                                4      T
                                3      F
4    T     0     T
             1     T
             2     T
             3     T
             4     F
                               5      T
                               4      F
5     F

 

//문제3
		for (int a = 0; a < 5; a++) {// 총 횟수
			// 띄어쓰기를 하는데 처음 부터 띄어쓰기를 하지 않기 위해 <=를 사용하지 않고 <를 사용하여
			// a보다 작을 떄까지 j를 증가시켜 띄어 쓰기를 넣는다
			for (int j = 0; j < a; j++) {
				System.out.print(" ");
			}
			// 별을 5개부터 줄여 나가기위해 i를 5로 지정
			// 별 개수 지정을 위해 a를 최소값으르 지정하여 총횟수 5번보다 별이 넘어가지 안도록 조건을 건다
			for (int i = 5; i > a; i--) {
				System.out.print("*");
			}
			System.out.println();
		}

 

 

방법 2

디버깅 표

a  a<5   i    i<5  ????== a>i
--------------------
0    T    0     T       F 
           1      T       F
           2      T       F
           3      T       F
           4      T       F
           5      F
1    T   0      T      T
           1     T       F
           2     T       F
           3     T       F
           4     T       F

		for (int a = 0; a < 5; a++) {
			for (int i = 0; i < 5; i++) {//5*5상자를 만들고
				if(i<a) {//i<a 조건식을 통헤 공백(" ")과 *을 결정한다
					System.out.print(" ");
				}
				else
					System.out.print("*");
			}
			System.out.println();
		}

'JAVA > 개념정리' 카테고리의 다른 글

반복문  (1) 2023.11.22
조건문 if()  (0) 2023.11.22
코딩 쉽게하는법  (0) 2023.11.21
연산자, 디버깅 표  (1) 2023.11.21
주석  (0) 2023.11.21