for문
반복횟수를 알고 있을 때 주로 사용
형식: for(초기화변수(초기값) ; 조건식(반복횟수) ; 증감연산자 ) {반복할 내용}
ex1) "안녕하세요" 10번 출력
int i;
for(i=1; i<=10 ; i++) {
System.out.println("i = " + i);
System.out.println("안녕하세요");
}
ex2) for문의 초기화 변수값을 이용해서 1~10까지 합계를 구해서 출력. 초기화 변수 재사용
int i;
int sum = 0; //초기화 변수내의 값들을 모두 누적해서 저장해놓는 변수
for (i = 1 ; i <= 10 ; i++) {
System.out.println("i = " + i);
sum += i;
System.out.println("sum = " + sum);
}
ex3) for문의 초기화 변수값을 이용해서 1~10까지 짝수의 합계를 출력.
for문, if문, 나머지 연산자를 사용
int i;
int sum = 0;
for(i=1 ; i <=10; i++) {
if (i%2==0) {
System.out.println("i = " + i);
sum += i;
}
} System.out.println("sum = " + sum);
for문 요소 생략하기 while문과 동일하게 for문 내에서 초기값, 조건식(반복횟수), 증감식을 따로 지정해서 사용하는 방법
1) 초기화식 생략 : 다른 곳에서 변수가 초기화 되어 있어서 중복으로 초기화할 필요가 없는 경우
int i = 1;
for (/*초기화식생략*/; i <= 10 ; i++) {
for (i = 1 ; i <= 10 ; i++) {
System.out.println("i 변수값 = " + i);
}
System.out.println("i 변수값 = " + i);
}
2) 조건식 생략 : for문 내에서 if문으로 조건문을 작성해서 반복횟수를 정하는 경우(for문의 수행을 멈추기 위해서) 초기화 변수 재사용
int i = 1;
for (i = 1 ; /*조건식생략(반복횟수 생략)*/ ; i++) {
System.out.println("i 변수값 = " + i);
//조건식(반복횟수)를 for문 내에서 따로 지정
if(i >= 10) break;
}
System.out.println("i 변수값 = " + i);
3) 증감식 생략 : 증감식에 대한 연산이 복잡하거나 다른 변수의 연산 결과값에 영향을 주게 되는 경우(for문 내에 증감식을 따로 작성)
초기화 변수 재사용
int i = 1;
for (i = 1 ; i <= 10 ; /*증감식생략*/ ) {
System.out.println("i 변수값 = " + i);
i += 2
}
4) 모든 요소 생략 : 무한 반복. 초기화 변수를 선언하지 않으면 기존의 초기화 변수를 그대로 사용
int i = 1;
for( ; ; ) {
System.out.println("i = " + i);
i++; //증감 연산자 따로 작성
//무한반복 종료 : break문 사용
//조건식 (반복 횟수) 따로 설정
if (i >= 20) {
System.out.println("i = " + i);
System.out.println("입력 종료");
break;
}
}
System.out.println("i = " + i);
ex4) 정수를 무한으로 받아서 입력된 모든 수의 합계 구하기(종료 0 입력)
int total = 0;
int num;
for(;;) {
System.out.println("정수를 입력(0은 종료)");
num = sc.nextInt();
System.out.println("num = " + num);
if(num==0) {System.out.println("종료");
break;
}
total += num;
System.out.println("total = " + total);
}
total += num;
System.out.println("total = " + total);
중첩 for문
바깥쪽 for문이 1번 수행 될 동안 안쪽 for문은 반복횟수를 모두 수행해야함.
ex5) 구구단(단수 * 곱하는 수)
int a;
int b;
for (a=2; a<=9; a++) {
System.out.println(a+"단");
for (b=1 ; b<=9; b++) {
System.out.println(a + "*" + b + "=" + (a*b));
}
}
System.out.println();
continue문과 break문
반복을 중지하는 키워드
break문 : 반복을 중지
int num;
for (num = 1 ; num <= 10; num++ ) {
if (num == 5 ) break;
System.out.println("num = " + num);
}
continue문 : 현재 반복만 수행중지하고 다음 반복을 수행하러 간다.
int num;
for (num = 0; num <=10; num++) {
if((num==5 || num ==7 || num==9)) continue;
System.out.println("num = " + num);
}
ex6) 1~10까지 홀수의 합을 구하기 for, if, continue문을 사용
int num;
int sum = 0;
for (num=1; num<=10 ; num++) {
if((num%2==0)) continue;
sum += num;
} System.out.println("sum = " + sum);
ex7) 1~100까지의 3의 배수만 구하기 for, if, continue문 사용
int i;
for (i = 1 ; i <= 100 ; i++) {
if (i % 3 != 0) {
continue;
}
System.out.println("i 변수값 = " + i);
}
'KDT > Java' 카테고리의 다른 글
231122 Java (0) | 2023.11.22 |
---|---|
231120 Java (0) | 2023.11.20 |
231115 Java (0) | 2023.11.17 |
231113 Java (0) | 2023.11.13 |
231109 Java - 조건문3 (0) | 2023.11.09 |