728x90
반응형
조건이 참(true)인 동안 반복수행하기
- 주어진 조건에 맞는 동안(true) 지정된 수행문을 반복적으로 수행하는 제어문
- 조건이 맞지 않으면 반복하던 수행을 멈추게 됨
- 조건은 주로 반복 횟수나 값의 비교의 결과에 따라 true, false 판단 됨
1. while문
- 수행문을 수행하기 전 조건을 체크하고 그 조건의 결과가 true인 동안 반복 수행
// 1부터 10까지 더하여 그 결과를 출력하기
public static void main(String[] args) {
int num = 1;
int sum = 0;
while(num <= 10) {
sum += num;
num++;
}
System.out.println(sum); //55
System.out.println(num); //11
}
1-1. 무한반복
while(true){
.......
}
2. do-while문
- 조건과 상관없이 한번은 수행문을 수행한다.
- while문은 조건을 먼저 체크하고 반복 수행이 된다면, do-while은 조건과 상관 없이 수행을 한 번 하고나서 조건을 체크.
- 조건이 맞지 않으면(true 가 아니면) 더 이상 수행하지 않음.
public static void main(String[] args) {
int num = 1;
int sum = 0; // int sum;은 안됨 // 0으로초기화 시켜줘야 연산가능
do {
sum +=num;
num++;
} while(num <= 10 );
System.out.println(sum); // 55
System.out.println(num); // 11
3. for 문
- for반복문은 변수초기화, 조건식, 증감식이 한줄에 모두 있다.
- 초기화식은 최초 한 번만 수행합니다.
- 조건식을 수행해서 수행결과가 false라면 for 반복문을 빠져 나갑니다.
- 수행 결과가 true라면 실행문을 수행한다.
- 증감식을 수행한다.
- 2번부터 4번까지 반복적으로 수행한다.
//for문을 이용하여 1부터 100까지의 합을 구하는 프로그램
int total = 0; //1부터 100까지 합한 결과값을 담기위한 변수 선언
for(int i = 1; i <= 100; i++){ //1부터 100까지 반복하기 위한 for 반복문
total = total + i; // 1부터 100까지 반복해서 total 변수에 값을 누적
}
System.out.println(total); //결과값 출력
//for문을 이용하여 1부터 100까지의 짝수의 합을 구하는 프로그램
public static void main(String[] args) {
int total = 0;
for(int i = 1; i <= 100; i++){
if(i % 2 != 0){ // 2로 나눈 나머지가 0이 아니라는것은 홀수를 의미한다.
continue; // 홀수일 경우 total = total + i; 문장이 실행되지 않으므로, 결과적으로 짝수만 더해준다.
}
total = total + i;
}
System.out.println(total);
}
}
3-1. for문의 문장들은 생략가능하다.
- 초기화식 생략 : 이미 이전에 값이 초기화 되어 for 내부에서 값을 지정할 필요가 없는 경우
int i = 0;
for(; i < 5; i++){
...
}
- 조건식 생략 : 반복 수행에 대한 조건이 수행문 내부에 있는 경우
for (i=0; ; i++){
sum += i;
if(sum>200) break;
}
- 증감식 생략 : 증감식에 대한 연산이 복잡하거나 다른 변수의 연산 결과값에 결정되는 경우
for (i=0; i<5; ){
...
i=(++i)%10;
}
- 무한 반복
for( ; ; ){
...
}
4. while vs do-while vs for
while문 | do-while문 | for문 | |
수행 | 조건이 참인 동안 반복수행. 조건이 맞지 않으면 수행되는 부분이 없음. |
조건이 참인 동안 반복수행. 수행문을 먼저 수행하고 조건 체크. |
초기화, 조건체크, 증감 순으로 수행. |
쓰임 | 조건식의 결과나 변수가 true, false 값인 경우 주로 사용. |
특정 수의 범위, 횟수와 관련하여 반복되는 경우 주로 사용. 배열과 함께 많이 사용. |
5. 중첩 반복문
- 반복문 내부에 또 다른 반복문이 있음
- 여러 겹으로 반복문을 겹쳐서 구현 가능 (단 수행시간에 문제가 발생할 수 있음)
- 외부 반복문과 내부 반복문 간의 변수 값 변화에 유의 하며 구현하여야 함
public static void main(String[] args) {
int dan = 2;
int count = 1;
for( dan = 2; dan <= 9; dan++) {
for(count = 1; count <=9; count++) {
System.out.println( dan + "X" + count + "=" + dan * count);
}
System.out.println();
}
dan = 2;
while( dan <= 9 ) {
count = 1;
while (count <= 9) {
System.out.println( dan + "X" + count + "=" + dan * count);
count++;
}
dan++;
System.out.println();
}
}
// 2X1=2
// 2X2=4
// 2X3=6
// 2X4=8
// 2X5=10
// 2X6=12
// 2X7=14
// 2X8=16
// 2X9=18
//숫자+1 하면서 구구단 반복
6. break 문
- 감싸고 있는 제어문의 블록을 빠져 나오는 기능 (switch문 에서도 사용)
- 반복문에서는 주로 조건문(if)와 같이 사용하여 조건에 해당되는 경우 반복 수행을 멈추고 반복문 외부로 수행이 이동
- 여러 반복문이 중첩되어 있는 경우엔 break 문이 포함되어 있는 반복문만 빠져 나옴
//1부터 숫자를 더하여 100이 넘는 순간의 그 숫자와 합을 출력하라.
public static void main(String[] args) {
int sum = 0;
int num;
for( num = 1; ; num++) {
sum += num;
if( sum >= 100) break;
}
System.out.println(sum); // 105
System.out.println(num); // 14
}
7. continue문
- 반복문 내부에서 조건문(if)와 같이 사용하며, 조건이 맞는 경우(true 이면) 이후 반복문 블럭 내부의 다른 수행문들을 수행하지 않음
// 1부터 100까지 숫자 중 3의 배수를 출력하라.
int num;
for( num = 1; num <= 100; num++) {
if( (num % 3) != 0) continue;
System.out.println(num);
}
728x90
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 조건문 (if / else if / switch-case ) (0) | 2023.02.26 |
---|---|
[JAVA] 연산자 (증감/부호/산술/논리/비교/대입/비트) (0) | 2023.02.26 |
[JAVA] 변수와 변하지 않는 상수와 리터럴, 변수의 형 변환 (0) | 2023.02.26 |
[JAVA] 자료형(Data Type) (0) | 2023.02.26 |
[JAVA] Hello,World (0) | 2023.02.25 |
댓글