1. for 반복 제어문
- 실행 구문을 반복적으로 수행하는 반복 제어문
- 반복 횟수가 정해질 때 주로 사용
- for문의 구성
for(초기식 ; 조건식 ; 증감식) {
실행 구문; //조건식이 true인 동안 실행
}
- 초기식
: for문이 시작될 때 딱 한번 실행되고 다시는 실행되지 않음. for문안에서만 사용할 변수는 주로 초기식에서 초기화
- 조건식
: 실행 구문으로 들어가기 위한 유일한 출입구로, 이 조건식의 결과가 true가 나오는 동안은 실행구문을 계속 반복
: 만일 조건식이 false가 나오면 더 이상 반복을 수행하지 않고 for문을 빠져나감
- 증감식
: for문의 실행 구문이 모두 수행된 후 닫힌 중괄호(})를 만나면 다음 번 반복을 위해 다시 이동하는 위치로 매회 반복이 수행될때 마다 호출
- for문에서 조건식이 생략됐을 때(무한 루프)
for( 초기식 ; ; 증감식) {
실행 구문;
}
- 조건식이 생략되면 컴파일러는 자동으로 true 입력
- break 키워드를 삽입해 특정 조건을 만족했을 때 무한 루프를 탈출하도록 프로그래밍
- break를 이용한 무한 루프 탈출
for(int i=0; ; i++) {
if(i>10) {
break;
}
System.out.println(i+" "); //0 1 2 3 4 5 6 7 8 9 10
}
- for 문의 기본 문법 구조, 특수한 형태, 무한 루프에서 탈출하기
package loopcontrolstatement;
public class loopcontrolstatement_1 {
public static void main(String[] args) {
//for문의 기본 문법 구조
int a; //for문의 반복 횟수를 지정하는 변수를 외부에서 선언
for(a=0;a<3;a++) {
System.out.print(a+"");
}
System.out.println();
for(int i=0; i<3 ; i++) { //for문의 반복 횟수를 지정하는 변수를 내부에서 선언
System.out.print(i+"");
}
System.out.println();
for(int i=0;i<100;i++) {
System.out.print(i+"");
}
System.out.println();
for(int i=10; i>0; i--) {
System.out.print(i+"");
}
System.out.println();
for(int i=0; i<10; i+=2) {
System.out.print(i+"");
}
System.out.println();
for(int i=0,j=0; i<10; i++,j++) {
System.out.print(i+j+"");
}
System.out.println();
//무한 루프 탈출
for(int i=0; ; i++)
{
if(i>10) {
break; //i>10을 만족할 때 무한루프 탈출
}
System.out.println(i+"");
}
System.out.print("무한 루프 탈출");
}
}
2. While 반복 제어문
- 소괄호 안의 조건식이 true인 동안 반복 지속
- 반복횟수를 정하지 않고 특정 조건까지 반복하고자 할 때 주로 사용
- while문 구성
초기식;
while (조건식) {
실행구문;
증감식;
}
- 초기식은 while문 실행 이전에 정의돼야하고, 증감식은 중괄호 안에 있어야 for문과 동일한 수행을 하게됨
- while 문의 일반적인 사용 예
- 자연수를 순서대로 더해 합계가 처음으로 100보다 커지는 때에 숫자와 합계
int num =0, sum = 0;
while(sum < 100) {
sum+=num;
num++;
}
System.out.println((num-1) + "까지의 합=" + sum); //14까지의 합 = 105
- while문과 for문은 언제든지 상호 변환 가능
- while문과 for문의 상호 변환 예
for(int a=0; a<10; a++) {
System.out.println(a);
}
int a=0;
while(a<10) {
System.out.println(a);
a++;
}
- while문으로 만든 무한 루프
while(true) {
실행 구문;
}
- while문의 기본 문법 구조, for 문으로 변환, 특수한 형태, 무한 루프 탈출
package loopcontrolstatement;
public class loopcontrolstatement_2 {
public static void main(String[] args) {
//while문의 기본 문법 구조
int a=0;
while(a<10) {
System.out.print(a+"");
a++;
}
System.out.println();
//for문으로 변환
for(int i=0; i<10; i++) {
System.out.print(i+"");
}
System.out.println();
int b=10;
while(b>0) {
System.out.print(b+"");
b--;
}
System.out.println();
//for문으로 변환
for(int i=10; i>0; i--) {
System.out.print(i+"");
}
//무한 루프 탈출
int c=0;
while(true) {
if(c>10) {
break; //c>10을 만족할 때 무한 루프 탈출
}
System.out.print(c+"");
c++;
}
}
}
3. do-while 반복 제어문
- while문과 매우 비슷한 반복 제어문으로, 조건식의 검사와 반복 실행의 순서에서만 차이
- do-while문의 구성
초기식;
do {
실행구문; // 최초 1회는 무조건 실행
증감식;
} while(조건식); //문법 구조상 중괄호가 없으므로 세미콜론(;)로 끝남
- do-while문의 기본 문법 구조, do-while문 vs while문의 비교
package loopcontrolstatement;
public class loopcontrolstatement_3 {
public static void main(String[] args) {
//반복 횟수가 0일때 do-while문과 while문 비교
int a;
a=0;
while(a<0) {
System.out.print(a+"");
a++;
} //실행 횟수 0번
System.out.println();
a=0;
do {
System.out.print(a+"");
a++;
}while(a<0); //실행 횟수 1번
System.out.println();
//반복횟수가 1일때 do-while문과 while문 비교
a=0;
while(a<1) {
System.out.print(a+"");
a++;
} //실행횟수 1번
System.out.println();
a=0;
do {
System.out.print(a+"");
a++;
}while(a<1); //실행 횟수 1번
System.out.println();
//반복 횟수가 10일 때 do-while 문과 while 문 비교
a=0;
while(a<10) {
System.out.print(a+"");
a++;
} //실행횟수 10번
System.out.println();
a=0;
do {
System.out.print(a+"");
a++;
}while(a<10); //실행횟수 10번
}
}
4. 제어문의 중복
- 각 제어문 내부에는 또 다른 제어문을 포함할 수 있다
- 제어문의 중복
package loopcontrolstatement;
public class loopcontrolstatement_4 {
public static void main(String[] args)
{
//if-if 중복
int value1=5;
int value2=3;
if(value1>5) {
if(value2<2)
{
System.out.println("실행1");
}
else {
System.out.println("실행2");
}
}
else {
System.out.println("실행3");
}
System.out.println();
//switch - for 중복
int value3=2;
switch(value3) {
case 1:
for(int k=0; k<10; k++) {
System.out.print(k+"");
}
break;
case 2:
for(int k=10; k>0; k--) {
System.out.print(k+"");
}
break;
}
System.out.println();
System.out.println();
//for - for - if 중복
for(int i=0; i<3; i++) { //3회 반복
for(int j=0; j<5; j++) { //5회 반복
System.out.println(i+""+j);
if(i==j) {
System.out.println("i==j");
}
}
}
}
}
'Java' 카테고리의 다른 글
5-1장 배열(1) (0) | 2023.04.22 |
---|---|
4-2장 제어 키워드 (0) | 2023.04.21 |
4-1장 제어문 (1) 조건문 (0) | 2023.04.21 |
3-2장 연산자의 연산 방법 (0) | 2023.04.19 |
3-1장 연산자의 종류 (0) | 2023.04.19 |