728x90
★ 반복문
- 특정 코드를 원하는 횟수만큼 반복 실행
- 생산성 향상 + 유지보수성 향상
- 종류
- for
- while
- dowhile
★ for문
- 기본 조건문 양식
for (초기식; 조건식; 증감식) {
실행문; x 반복
}
- ex1) 요구사항 : 안녕하세요 * 5번 출력
- 소스코드
//-i : 루프 변수(***)
for(int i=1; i<=10; i=i+1) {
//System.out.println("Hello");
hello();
}
}//m1
//for 문 실행 순서
//1. 초기식 실행 : int i=1;
//2. 조건식 실행 : i<=3;
//2.1 true : 실행블럭을 실행한다.
//2.2 false : for문을 빠져나간다.
//3. 실행문 : Hello
//4. 증감식 실행 : i=i+1
//5. 조건식 실행 : i<=3;
//6. 실행문 : Hello
//7. 증감식 실행 : i=i+1
//8. 조건식 실행 : i<=3;
//9. 실행문 : Hello
//10. 증감식 : i=i+1
//11. 조건식 실행 : i<=3; -> i=4 따라서 false
//12. for문 탈출(종료)
- ex2) 요구사항] 숫자 1~10까지 출력
- 소스코드
int num = 1;
for(int i=0; i<100; i++) {
System.out.println(num);
num++;
}
//초기식, 조건식, 증감식
for (int i=2; i<=100; i+=2) {
System.out.println(i);
}
System.out.println();
}//m3()
- ex3) 요구사항] 1~10까지의 합?
- 소스코드
int sum = 0; //누적 변수(***반드시 0으로 초기화)
for(int i=1; i<=100; i++) {
//sum = 0+1
//sum = 1+2
sum += i;
}
System.out.println(sum);
}//m4()
- ex4) 요구사항] 사용자로부터 숫자를 입력받아 1~입력한 숫자까지 총 합을 구하시오.
- 소스코드
Scanner scan = new Scanner(System.in);
System.out.print("숫자 : ");
int num = scan.nextInt();
int sum = 0;
for (int i=1; i<=num; i++) {
sum += i;
}
System.out.printf("1 ~ %d = %d\n", num, sum);
}//m5()
- ex5) 요구사항] 사용자로부터 숫자를 10개 입력받아 총합을 구하시오.
- 소스코드
Scanner scan = new Scanner(System.in);
int sum = 0;
for (int i=0; i<10; i++) {
System.out.print("숫자를 입력하세요 : ");
int num = scan.nextInt();
sum += num; //사용자가 입력한 숫자를 sum에 누적하기
}
System.out.println(sum);
}//m6();
- ex6) 요구사항] 구구단 출력
- 소스코드
/*
5 x 1 = 5
5 x 2 = 10
..
5 x 9 = 45
*/
for (int i=1; i<10; i++) {
System.out.printf("5 x %d = %2d\n", i, (5*i));
}
//구구단 출력 > 사용자가 입력한 단 출력
Scanner scan = new Scanner(System.in);
System.out.print("단을 입력하세요 : ");
int dan = scan.nextInt();
for (int i=1; i<10; i++) {
System.out.printf("%d x %d = %2d\n",dan, i, (dan*i));
}
}//m7()
- ex7) 무한 루프, Infinite Loop
- 소스코드
int n = Integer.MIN_VALUE;
System.out.println(n);
//10바퀴
/* 이렇게 증감 연산자를 잘못 입력해서 돌면 대략 > int최대값 : 21억 바퀴가 돔.
for (int i=0; i<10; i--) {
System.out.println("안녕하세요.");
}*/
//무한 루프 일부러 만들기
// > 회전수를 미리 예측하기 힘든 경우에 사용
/* 진정한 무한루프
for (;;) {
System.out.println("무한 루프");
}*/
}//m8()
- ex8) 분기문
- break
- continue
- 독립 사용 불가능
- 반복문과 같이 사용
- if문은 인식하지 않는다. (if문은 탈출 대상으로 인식하지 않는다.)
- 소스코드
for (int i=1; i<=10; i++) {
//break; //break를 여기다가 두면, Unreachable code 즉, 아래 코드가 실행되지 않는다.
//자신이 속한 제어문을 탈출한다.(for)
if (i == 5) {
break; //자신이 속한 제어문을 탈출한다.(if(x) > for(O))
}
System.out.println(i);
}
System.out.println("종료");
}//m9()
public static void m10() {
//기본적으로 1~10까지 출력 루프
// > 사용자가 개입 > 루프 횟수 추가 지정
Scanner scan = new Scanner(System.in);
System.out.print("숫자 : ");
int num = scan.nextInt();
//방법 1
for(int i=1; i<10; i++) {
System.out.println(i);
if(i==num) {
break;
}
}
//방법 2
for (int i=1; i<=num; i++) {
System.out.println(i);
}
}//m10()
- ex9) 요구사항] 사용자로부터 숫자를 원하는 만큼 입력 > 합을 구하시오.
- 소스코드
// 횟수를 예측하지 못하는 반복문 > 무한 루프
Scanner scan = new Scanner(System.in);
int sum = 0;
int count = 0;
for(;;) {
System.out.print("숫자(0을 입력하면 종료) : ");
int num = scan.nextInt();
if(num==0) {
System.out.printf("총 %d개의 숫자를 입력했고, 입력하신 숫자의 합은 : %d 입니다.",count, sum);
break;
}
sum += num;
count++;
}
}//m11()
public static void m12() {
//break > 완전 중지
//continue > 일시 중지
for(int i=1; i<=10; i++) {
if (i == 5) {
continue; //나머지 코드를 실행하지 않고, 반복문의 시작으로 돌아가라
//즉, 1~4까지 실행되고 5를 만났을 때, 아래로 가지 않고, 위로 올라가서 바로 6이되서 출력이 되는 것임.(skip)
}
System.out.println(i);
}
}
728x90
'자바' 카테고리의 다른 글
JAVA STEP 19. for문 예제모음 (0) | 2023.02.10 |
---|---|
JAVA STEP 18. if문 & for문 예제 모음 (0) | 2023.02.09 |
JAVA STEP 16. DateTime&if&switch 예제 모음 (0) | 2023.02.08 |
JAVA STEP 15. if&switch (0) | 2023.02.08 |
JAVA STEP 14. DateTime (0) | 2023.02.08 |