자바,java,반복문,for,star,별,기초
반복문을 이용하여 다양한 별 찍기
이번 포스팅은 반복문을 이용하여 별 찍는 법에 대해서 작성해볼려고 합니다.
기초적인 코딩이므로 어떤식으로 작동을 하는지 알고 짜실수 있어야 합니다.
우선 문제만 보시고 직접코딩을 해보신후에 보시는것을 추천드립니다.
1 | ★★★★★ |
2 |
★ ★ ★ ★ |
3 | ★★★★★ ★★★★★ ★★★★★ ★★★★★ ★★★★★ |
4 |
★ ★★ ★★★ ★★★★ ★★★★★ |
5 |
★★★★★ ★★★★ ★★★ ★★ ★ |
6 |
☆☆☆☆★ ☆☆☆★★ ☆☆★★★ ☆★★★★ ★★★★★ |
7 |
★★★★★ ☆★★★★ ☆☆★★★ ☆☆☆★★ ☆☆☆☆★ |
Star 출력 [1-7]
Star1
검정별을 1개만 사용하고 반복문을 한번만 활용해서 ★★★★★ 이렇게 찍어봅시다.
public class Star1 {
public static void main(String[] args) {
for(int i=1;i<=5;i++) {
System.out.print("★");
}
}
}
별 5개를 찍을 것이기때문에 반복문을 5회 반복하고 가로로 출력할것이기 때문에 print()문을 사용하시면 됩니다.
Star2
1번과 같이 검정별을 1개만 사용하고 반복문을 한번만 활용해서 세로로
★
★
★
★
★
찍어봅시다.
public class Star2 {
public static void main(String[] args) {
for(int i=1;i<=5;i++) {
System.out.println("★");
} } }
1번과 마찬가지로 별 5개를 찍을것이기 떄문에 1부터 5까지 반복하고 print()문이 아닌 println문을 사용하시면 됩니다.
Star3
★★★★★
★★★★★
★★★★★
★★★★★
★★★★★
검정별을 1개만 사용하고 이중 반복문을 써서 만들어봅시다.
public class Star3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=5;i++) {
for(int j=1;j<=5;j++) {
System.out.print("★");
}
System.out.println("");
}}}
안쪽 for문을 보시면 Star1과 같은 문장입니다. 그러면 가로로 ★★★★★ 를 찍게 되겠죠
바깥쪽 반복문을 보게되면 안쪽반복문이 끝나게 되면 println()을 통해 줄넘김을 하게됩니다.
그러면 5*5짜리 별이 생기게 됩니다.
Star4
★
★★
★★★
★★★★
★★★★★
public class Star4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=5;i++) {
for(int j=1;j<=i;j++) {
System.out.print("★");
}
System.out.println("");
}
}
}
우선 바깥쪽 반복문을 보게되면 단순히 5회반복 즉 5줄을 출력하는것은 알수있다.
안쪽 반복문을 보게 되면 첫번째 줄에는 별 한개 두번째 줄에는 별두개 이렇게 찍히기 때문에 조건으로 보면
안쪽 변수가 바깥쪽 변수의 값이랑 같거나 작을때 별을 출력해야 한다.
그러므로 i가 1이고 j가 1일때는 j<=i 조건에 부합하므로 별 한번출력후 j가 2가되면 조건에 맞지않기때문에 안쪽반복문을 빠져나가고 바깥쪽 반복문을 돌리게 됩니다.
Star5
★★★★★
★★★★
★★★
★★
★
public class Star5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=5;i++) {
for(int j=5;j>=i;j--) {
System.out.print("★");
}
System.out.println("");
}
}
}
4번이랑 아주 유사한 문제입니다. 바깥쪽은 바뀐것은 없고 안쪽 반복문의 조건만 바꿔주시면 됩니다.
이번엔 첫줄에 별 5개를 찍을 것이므로 j의 값이 i의 값보다 크거나 작을때 별을 출력해주시면 됩니다.
그러면 i의 값이 1씩 증가할수록 안쪽 반복문에서는 별 한개씩 줄어드는것을 확인하실수 있습니다.
같은 출력문 이지만 조건문을 바꿔서 작성하실수도 있습니다.
for(int i=5;i>=1;i--) {
for(int j=1;j<=i;j++) {
System.out.print("*");
}
System.out.println();
}
바깥쪽 범위를 5에서 1로 감소하면서 안쪽의 범위상수를 i로 설정하는 방법입니다.
어떻게 짜든 상관은없지만 여러가지 방법이 있으니 몰랐다면 알아두는것도 좋습니다.
Star6
☆☆☆☆★
☆☆☆★★
☆☆★★★
☆★★★★
★★★★★
public class Star6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=5;i++) {
for(int j=5;j>=1;j--) {
if(i>=j) {
System.out.print("★");
}else {
System.out.print("☆");
}
}
System.out.println("");
}
}
}
조건을 빼고 반복문에 별 출력문만 있다고 보시면 3번과 똑같습니다. 5*5 별이 출력되죠
근데 if문에서 바깥쪽 반복문 변수i가 안쪽 반복문 변수j보다 크거나 같을때는 검정별 작을때는 흰별을 출력하게됩니다.
즉 안쪽 반복문은 5부터 시작하게 되므로 i가 1일때 j는 5부터2까지 흰별을 찍게되고 j가 1이 되면 검정별을 찍게됩니다.
이것도 마찬가지로 조건을 바꿔서 같은 결과가 나오게 할수 있습니다.
if(i<j) {
System.out.print("☆");
}else {
System.out.print("★");
}
i값이 j보다 작을때는 흰별을
i값이 j값보다 같거나 클때는 검정별을 찍게됩니다.
Star7
★★★★★
☆★★★★
☆☆★★★
☆☆☆★★
☆☆☆☆★
이 문제는 위의 문제와 상당히 유사한 문제입니다.
본인 스스로 한번 연습해보시는걸 추천해드립니다.
마무리
자바 공부를 시작하게 되면 가장 기초적인 반복문과 조건문은 잘 공부해두는게 좋습니다.
관련글
1.2020/09/24 - [IT/자바[Java]] - 이클립스 설치하기 [2020-09-24]
2.2020/08/31 - [IT/자바[Java]] - Java JDK 환경변수 설정하기 [2020.08.31]
3.2020/08/31 - [IT/자바[Java]] - JDK 1.8 설치하는 방법 [2020.08.31]
4.2020/09/02 - [IT/윈도우[Windows10]] - 윈도우10 C드라이브 용량 늘리기 [다운로드 폴더위치 변경]
'IT 기술 > 자바[Java]' 카테고리의 다른 글
이클립스 툴팁(hover) 검은창 해결방법 (0) | 2020.12.14 |
---|---|
JDK 설치시 경로에는 공백이 없어야 합니다 [필수] (0) | 2020.12.10 |
이클립스 설치하기 [2020-09-24] (0) | 2020.09.24 |
Java JDK 환경변수 설정하기 [2020.08.31] (0) | 2020.08.31 |
JDK 1.8 설치하는 방법 [2020.08.31] (2) | 2020.08.31 |