일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스프링
- spring
- javaclass
- springtoolsuite
- 구멍가게코딩단
- 스프링DI
- 스프링부트
- 비전공개발자
- 코드로배우는스프링웹프로젝트
- 자바세팅
- lombok설치
- 코드로배우는스프링부트웹프로젝트
- 스프링세팅
- 자바
- java
- 자바계산기
- 명품자바
- springtoolsuite 설치
- spring세팅
- 자바별찍기
- 자바인스턴스
- springsecurity
- java생성자
- 자바UTF-8
- springboot
- java세팅
- springDI
- 자바static
- eclipseUTF-8
- eclipse
Archives
- Today
- Total
딴따라 제퍼의 개발 유랑기
별찍기 java 예제 (for문 예제) 본문
저도 처음 했을 당시 머리 싸매며 풀었던 기억이 나네요.
가장 중요한것은 이중 for문에 대한 이해이고,
응용된 다른 모양의 별찍기를 하려면 i와 j의 상관관계(좌표)를 캐치하는것 이라고 생각합니다.
// MAX에 정사각형 크기 입력
for(int i=0; i<MAX; i++) {
for(int j=0; j<MAX; j++) {
if(j > i) break;
System.out.print("*");
}
System.out.println();
}
- 각 row를 반복하는 구역은 i, 각 column을 반복하는 구역은 j
- 별 출력하는 곳은 println()이 아닌 print()에 주의
// MAX에 정사각형 크기 입력
for(int i=0; i<MAX; i++) {
for(int j=MAX-i; j>0; j--) {
System.out.print("*");
}
System.out.println();
}
- j열의 조건이 다르고 증감식이 --로 가는점 외에는 비슷합니다.
for(int i=0; i<MAX; i++) {
if(i == 0 || MAX-i == 1) { // 첫번째행, 마지막행일때
for(int j=0; j<MAX; j++) {
System.out.print("*");
}
} else {
for(int j=0; j<MAX; j++) {
System.out.print(j == i || j == 0 || j == MAX-1 ? "*" : " ");
}
}
System.out.println();
}
- 첫번째 row와 마지막 row, 그것을 제외한 나머지 row로 나누어서 생각합니다.
- 가운데 별의 좌표를 먼저 파악해야 합니다.
- 그림처럼 별이 찍히는 좌표는
i가 1일때 && j가 1일때, i가 2일때 && j가 2일때............
결국 i == j 일때 별을 찍고, 처음 column과 마지막 column에 별을 찍으면 됩니다.
삼항 연산자로 해당 조건을 만족할때만 *을 출력하고 조건을 만족하지 않을시에
공백을 출력하게 하면 됩니다.
오랜만에 다시 해보니 헷갈리네용.. ;)
'Java' 카테고리의 다른 글
Java 개발 환경 세팅 (0) | 2021.01.27 |
---|---|
Static (0) | 2021.01.27 |
Class Constructor (생성자) (0) | 2021.01.27 |
Class (0) | 2021.01.27 |
Comments