티스토리 뷰
반응형
1. for문
- 처음부터 반복 횟수를 알 수 있는 경우
for (초기문; 조건문; 반복 후 작업) {
...작업문...
}
초기문
- 초기문은 시작할 때 한 번만 수행되며, 주로 조건문에서 사용하는 변수를 초기화 한다.
- 콤마(,)로 분리하여 여러 문장을 나열할 수 있다.
- 빈 상태로 두어도 되지만 끝에 세미콜론(;)이 있어야 한다.
조건문
- 논리형 변수나 논리연산을 사용한다.
- 조건문의 결과가 true이면 반복이 계속되고, false이면 for문을 벗어난다.
- 조건문에 true가 있거나 비어 있으면 무한반복이 된다.
작업문
- for문이 반복되는 동안 반복 실행된다.
반복 후 작업
- 작업문이 실행된 후 '반복 후 작업문'이 실행된다.
for문 예제
- 만약 for문을 사용하지 않고 구구단 2단을 출력한다면 아래와 같이 동일한 코드 블록을 반복적으로 실행해야 한다.
public class Ex01 {
public static void main(String[] args) {
// 구구단 2단을 출력
System.out.println(2 + "*" + 1 + "=" + (2*1));
System.out.println(2 + "*" + 2 + "=" + (2*2));
System.out.println(2 + "*" + 3 + "=" + (2*3));
System.out.println(2 + "*" + 4 + "=" + (2*4));
System.out.println(2 + "*" + 5 + "=" + (2*5));
System.out.println(2 + "*" + 6 + "=" + (2*6));
System.out.println(2 + "*" + 7 + "=" + (2*7));
System.out.println(2 + "*" + 8 + "=" + (2*8));
System.out.println(2 + "*" + 9 + "=" + (2*9));
}
}
- 자바는 이러한 반복연산을 프로그래밍 할 수 있도록 반복문을 제공하고 있다.
- for문을 활용하여 구구단 2단을 출력하면 다음과 같다.
public class Ex01 {
public static void main(String[] args) {
// for문을 이용하여
// 구구단 2단을 출력
for (int i = 1; i <=9 ; i++) {
System.out.println(2 + "*" + i + "=" + (2*i));
}
}
}
2. while문
- 반복 횟수를 알 수 없고, 반복 조건을 처음부터 따지는 경우
while (조건문) {
<수행할 문장1>;
...
}
- 조건문이 true인 동안 '수행할 문장'을 반복하고, false가 되면 while문을 벗어난다.
while문 예제
import java.util.Scanner;
public class Ex02 {
public static void main(String[] args) {
// while문 사용
// 정수를 입력받아 입력받은 수가 10보다 작을때만 계속 정수를 입력받으세요
// 10보다 큰 수를 입력하면 "종료되었습니다"를 출력
Scanner scan = new Scanner(System.in);
int num = 0;
while(num < 10) {
System.out.println("입력 >> ");
num = scan.nextInt();
}
}
}
while문 무한루프
while (true) {
<수행할 문장1>;
...
}
- while의 조건문이 항상 true이므로 while문 내의 '수행할 문장'이 무한하게 수행된다.
while문 빠져나가기(break)
- while문은 조건문이 참인 동안 계속해서 while문 안의 수행할 문장을 반복하여 수행하므로 강제로 while문을 빠져나가야 하는 경우에는 break문을 통해 벗어날 수 있다.
3. do-while문
- 반복 횟수를 알 수 없고, 반복 조건을 나중에 따지는 경우
do {
<수행할 문장1>;
...
}
while (조건문);
- '수행할 문장1'을 실행 후 조건문을 검사한다.
- 무한 반복에 빠지지 않기 위해 반복이 진행되는 동안 조건문을 false로 만들 수 있도록 설계해야 한다.
do-while문 예제
public class Ex03 {
public static void main(String[] args) {
//do-while문을 활용하여 0~9까지 출력
int num = 0;
do {
System.out.println(num);
num++;
}while(num<10);
}
}
4. 중첩 반복문
- 반복문 안에 다른 반목문을 만들 수 있다.
for (초기문1; 조건문1; 반복 후 작업) {
for (초기문2; 조건문2; 반복 후 작업) {
...작업문2...
}
...작업문1...
}
2중 중첩 for문 예제
- 단순히 for문을 활용해 구구단을 출력해보자
public class Ex04 {
public static void main(String[] args) {
// for문으로 구구단출력
System.out.println("2단");
for (int i = 1; i <= 9 ; i++) {
System.out.println(2 + "*" + i + "=" + (2*i));
}
System.out.println("3단");
for (int i = 1; i <= 9; i++) {
System.out.println(3 + "*" + i + "=" + (3*i));
}
System.out.println("4단");
for (int i = 1; i <= 9; i++) {
System.out.println(4 + "*" + i + "=" + (4*i));
}
System.out.println("5단");
for (int i = 1; i <= 9; i++) {
System.out.println(5 + "*" + i + "=" + (5*i));
}
System.out.println("6단");
for (int i = 1; i <= 9; i++) {
System.out.println(6 + "*" + i + "=" + (6*i));
}
System.out.println("7단");
for (int i = 1; i <= 9; i++) {
System.out.println(7 + "*" + i + "=" + (7*i));
}
System.out.println("8단");
for (int i = 1; i <= 9; i++) {
System.out.println(8 + "*" + i + "=" + (8*i));
}
System.out.println("9단");
for (int i = 1; i <= 9; i++) {
System.out.println(9 + "*" + i + "=" + (9*i));
}
}
}
- 위의 for문을 활용한 구구단 출력을 살펴보면 2~9단까지 숫자가 1씩 증가하고, 2단일 때 1~9가 반복되는 것을 알 수 있다.
- 2중 중첩 for문을 활용해서 구구단을 출력해보자
public class Ex04 {
public static void main(String[] args) {
// 2중 중첩 for문으로 구구단출력
for (int j = 2; j <= 9 ; j++) { //부모는 2~9단(j)까지 반복
// j가 한번 돌때는 i가 1~9까지 반복
System.out.print(j +"단 : ");
for (int i = 1; i <= 9; i++) {
System.out.print(j + "*" + i + "=" + (j*i) + "\t");
}
System.out.println();
}
}
}
- 위의 예를 보면 먼저 2~9까지의 숫자가 j에 대입된다.
- j가 처음 2일 때 다시 for문을 만나 1~9까지 숫자가 i에 대입되고
다음 문장인 System.out.println(2 + "*" + i + "=" + (2*i)); 를 수행하며 값을 출력하게 된다. - 그 다음 j가 3이 되고 다시 for문을 반복하게 된다.
- 이 과정은 j가 9가 될 때까지 계속 된다.
5. continue 와 break
continue문
- 반복문을 빠져나가지 않고 즉시 다음 반복으로 넘어가고자 할 때 사용한다.
- for문에서 continue를 만나면 '반복 후 작업'으로 분기한다.
- while문이나 do-while문에서는 조건문을 검사하는 과정으로 분기한다.
continue문 예제
public class Ex05 {
public static void main(String[] args) {
//1부터 10까지의 수중에서 홀수만을 출력
int a = 0;
while (a < 10) {
a++;
if (a % 2 == 0) {
continue; // 짝수인 경우 조건문으로 돌아간다.
}
System.out.println(a); // 홀수만 출력된다.
}
}
}
break문
- break문은 하나의 반복문을 즉시 벗어날때 사용한다.
- break문은 하나의 반복문만 벗어나기 때문에, 중첩 반복의 경우 안쪽 반복문에 break문이 실행되면 안쪽 반복문만 벗어나며 바깥쪽 반복문 내에서는 실행이 유지된다.
break문 예제
import java.util.Scanner;
public class Ex05 {
public static void main(String[] args) {
//exit을 입력받으면 while문을 벗어나도록
Scanner scan = new Scanner(System.in);
System.out.println("exit을 입력하면 종료합니다.");
while(true) {
System.out.print("입력하세요 >> ");
String text = scan.nextLine();
if(text.equals("exit")) { //"exit"이 입력되면 반복종료
break;
}
}
}
}
반응형
'JAVA' 카테고리의 다른 글
[Java] 리스트 (List, ArrayList) (0) | 2022.03.15 |
---|---|
[Java] 배열 (2) | 2022.03.14 |
[Java] 조건문(if문, if-else, switch-case) (0) | 2022.03.11 |
[Java] 연산자 및 연산자 우선순위 (0) | 2022.03.09 |
[Java] Scanner를 이용한 키 입력 (0) | 2022.03.08 |
댓글
반응형
공지사항