반복문
for(초기식; 조건식; 증감식;) {
조건식이 참일 동안 실행할 실행문;
};
[예제]
for(int i=0; i<10; i++){
System.out.print("i");
}
// 0123456789
for(int i=1; i<10; i++){
System.out.print("i");
}
//123456789
for(int i=10; i>0; i--){
System.out.print("i");
}
//10987654321
문제 : 1부터 10까지의 합 구하기
int sum=0;
for(i=1; i<=10; i++){
sum+=sum;
}
System.out.print(sum);
// 55
※ 반복문 안에 sum 변수를 사용하기 전에는 변수 선언과 초기화를 해야 한다.
별 찍기 예제
1) 왼쪽 정렬 삼각형
for(int i=1; i<=5; i++){
for(int j=0; j<i; j++){
System.out.print("*");
}
System.out.println("");
}
2) 오른쪽 정렬 삼각형
for(int i=1; i<6; i++){
for(int j=5; j>0; j--){
if(i>=j){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println("");
}
3) 왼쪽 정렬 역삼각형
for(int i=1; i<6; i++){
for(int j=5; j>0; j--){
if(i<=j){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println("");
}
4) 오른쪽 정렬 역삼각형
for(int i=1; i<6; i++){
for(int j=1; j<6; j++){
if(i<=j){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println("");
}
5) 트리
for(int i=1; i<=4; i++){
for(int j=1; j<=4-i; j++){
System.out.print(" ");
}
for(int j=1; j<=2*i-1; j++){
System.out.print("*");
}
System.out.println("");
}
[풀이]
i=1) j=1,2,3에 공백( ) j=4에 별(*)
i=2) j=1,2에 공백( ) j=3,4,5에 별(*)
i=3) j=1에 공백( ) j=2,3,4,5,6에 별(*)
i=4) j=1,2,3,4,5,6,7에 별(*)
공백 규칙 찾기 : (4-i)개
3 - 2 - 1
별 찍기 규칙 : (2*i-1)개
1 - 3 - 5 - 7
6) 역트리
for(int i=4; i>=1; i--){
for(int j=1; j<=4-i; j++){
System.out.print(" ");
}
for(int j=1; j<=2*i-1; j++){
System.out.print("*");
}
System.out.println("");
}
7) 마름모
위에 트리, 역트리 별찍기를 이용해서 마름모 별찍기도 가능하다.
참고로 마름모는 홀수개의 i행을 가진다.
//위
for(int i=1; i<=3; i++){
if(i<=2){
for(int j=1; j<=3-i; j++){
System.out.print(" ");
}
for(int j=1; j<=2*i-1; j++){
System.out.print("*");
}
}else{
for(int j=1; j<=2*i-1; j++){
System.out.print("*");
}
}
System.out.println("");
}
// 아래
for(int i=2; i>=1; i--){
for(int j=1; j<=3-i; j++){
System.out.print(" ");
}
for(int j=1; j<=2*i-1; j++){
System.out.print("*");
}
System.out.println("");
}
8) 마름모 응용
int num;
Scanner scn = new Scanner(System.in);
num = scn.nextInt();
for(int i=1; i<=num/2+1; i++){
if(i<=num/2){
for(int j=1; j<=num/2+1-i; j++){
System.out.print(" ");
}
for(int j=1; j<=2*i-1; j++){
System.out.print("*");
}
}
else{
for(int j=1; j<=2*i-1; j++){
System.out.print("*");
}
}
System.out.println("");
}
for(int i=num/2; i>=1; i--){
for(int j=1; j<=num/2+1-i; j++){
System.out.print(" ");
}
for(int j=1; j<=2*i-1; j++){
System.out.print("*");
}
System.out.println("");
}
마름모 (행/2)까지는 트리, (행/2)부터 마름모의 행까지는 역트리로 코드를 작성하면 된다.
ex) 7행 마름모는 3행까지 트리, 4행부터 7행까지는 역트리
'Java' 카테고리의 다른 글
[Java] 연산자 (0) | 2021.12.31 |
---|---|
[Java] 객체 지향 프로그래밍(객체, 클래스, 인스턴스, 추상화, 상속, 캡슐화, 다형성) (0) | 2021.12.31 |
[Java] 배열(array) (0) | 2021.12.29 |
[Java] switch-case문, do-while문 (0) | 2021.12.28 |
[Java] 조건문(if문 / if else문 / else if문), Scanner 복습 (0) | 2021.12.28 |