KDT/Java

231116 Java

001cloudid 2023. 11. 17. 08:52
728x90

for문

반복횟수를 알고 있을 때 주로 사용

형식: for(초기화변수(초기값) ; 조건식(반복횟수) ; 증감연산자 ) {반복할 내용}

ex1) "안녕하세요" 10번 출력

int i;

for(i=1; i<=10 ; i++) {

System.out.println("i = " + i);

System.out.println("안녕하세요");

}

ex1 결과
그림 1. ex1 결과

 

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);

}

ex2 결과
그림 2. ex2 결과

 

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);

ex3 결과
그림 3. ex3 결과

 

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);

ex4 결과
그림 4. ex4 결과

 

중첩 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);

}

break문
그림 5. break문

 

continue문 : 현재 반복만 수행중지하고 다음 반복을 수행하러 간다.

int num;

for (num = 0; num <=10; num++) {

if((num==5 || num ==7 || num==9)) continue;

System.out.println("num = " + num);

}

continue문
그림 6. continue문

 

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);

그림 7. ex6 결과

 

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);

}

ex7 결과
그림 8. ex7 결과

728x90

'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