🔯  for문

방법 쓰는 법 설명
1 for(초기식; 조건식; 증감식) {
     수행될 문장;
}
초기식 확인 ⇨ 조건식 확인 ⇨ 조건식이 true면 증감식 연산후 문장 수행 false면 수행하지 않음
2 for(A:B) {
     수행될 문장;
}
B에서(더이상 꺼낼 객체가 없을 때 까지) 차례대로 객체를 꺼내서 A에다가 넣겠다(대입)는 것이다.

※ example

for( int i = 0 ; i < 10 ; i++)
for( int i : intList)

 

 

🔯  while문

방법 쓰는 법 설명
1 while(조건식) [
       수행될 문장
       (증감식 or 분기문)
}
조건식이 true일 때 문장 수행
-  문장 수행이 끝나면 다시 조건식 확인후 true면 수행 (false가 될때까지)
-  조건식이 false가 되면 반복 종류
2 do {
   수행될 문장;
   [증감식 or 분기문];
} while (조건식);
do안의 내용 먼저 실행 
-  조건식 확인 후 true면 문장 수행, false면 종료 while뒤에 ; 꼭 필요
-  { }안에 조건을 벗어나게 할 연산(증감식,분기문) 필요
  while문과 do ~ while문의 차이점  do ~ while은 조건문이 true가 아니더라도 무조건 한 번 이상 수행

 example (while)

int i=1;
while( i<=10 ) {
    System.out.println( i )
    i++;
}
// = 1 2 3 4 5 6 7 8 9 10

 example (do ~ while)

int i =1;
do {
    System.out.println ( i );
    i++
}  while ( i<=10 )
// = 1 2 3 4 5 6 7 8  9 10

 

 

🔯  중첩 반복문

쓰는 법 설명
for ( 초기값1; 조건식1; 증감식1 ) {
     수행될 문장1;
     for ( 초기값2; 조건식2; 증감식2 ) {
         수행될 문장2;
     }
     수행될 문장3;
}
①  for문에 진입하면 수행될 문장1 수행 
②  두번째 for문에 진입하면 조건식2가 fasle가 될 때까지 수행될 문장2 수행 
③  밖으로 나오면 수행될 문장3 수행 > 조건식1로 돌아와 true면 다시 수행

for(반복횟수) x for(반복횟수)

 

 

※ example

for 문 이용해서 피라미드, 역 피라미드 만드는 방법

 

 for 문과 (*), 공백을 이용해서 콘솔에 피라미드를 출력하자. 

예를 들어 num = 10 이라고 했을 때 

for 문안에 있는 첫번째 for 문은 공백을 표시하게 됩니다. 첫 행부터 8, 7, 6 … 식으로 줄이면서 표시하게 되겠죠. 

두번째 *표시 for 문은 곱하기 2 을 해서 표시해야 되는 개수를 늘이고 홀수로 만들기 위해 +1 을 했습니다. 

홀수로 만들어야 양쪽으로 동일한 크기의 표시가 가능하겠죠. 

for (int i=0; i<num; i++) {
    for (int j=1; j<num-i; j++) {
    	System.out.print(" ");
    }
    for (int k=0; k<i*2+1; k++) {
    	System.out.print("*");
    }
    System.out.println();
}

 

 

▼ 위에서 만든 정상적인 피라미드를 뒤집어서 역 피라미드를 만들었습니다. num 에 입력된 개수에서 하나씩 줄이면서 계산했습니다.

 

 
for (int i = num; i > 0; i--) {
 
for (int j = num - i; j > 0; j--) {
 
System.out.print(" ");
 
}
 
for (int k = i * 2 - 1; k > 0; k--) {
 
System.out.print("*");
 
}
 
System.out.println();
 
}

 

▼ 아래는 두가지 샘플을 한번에 테스트 해 볼수 있는 전체 소스 입니다.

 

 
public class Pira {
 
public static void main(String[] args) {
 
 
 
int num = 10;
 
 
 
for (int i = 0; i < num; i++) {
 
for (int j = 1; j < num - i; j++) {
 
System.out.print(" ");
 
}
 
for (int k = 0; k < i * 2 + 1; k++) {
 
System.out.print("*");
 
}
 
System.out.println();
 
}
 
 
 
for (int i = num; i > 0; i--) {
 
for (int j = num - i; j > 0; j--) {
 
System.out.print(" ");
 
}
 
for (int k = i * 2 - 1; k > 0; k--) {
 
System.out.print("*");
 
}
 
System.out.println();
 
}
 
}
 
}

'Language > Java' 카테고리의 다른 글

클래스, 객체, 인스턴스 개념  (0) 2022.01.02
배열 복사  (0) 2021.12.29
2차 배열  (0) 2021.12.24
연산자  (0) 2021.11.28
데이터 타입 / 형변환  (0) 2021.11.25