🔯 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 |