반복문
루핑(looping) : 제어문 처음으로 다시 되돌아가 반복 실행
for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성할 때 어느 쪽을 선택해도 좋지만,
for 문
for(초기화식; 조건식; 증감식){ . . . }
true일 경우 중괄호 내부가 실행, 반복할 때마다 증감식이 실행된다
초기화식은 조건식과 증감식에서 사용할 루프 카운터 변수를 초기화한다.
반복 횟수를 알고 있을 때 사용
반복문은 한번 작성된 실행문을 여러번 반복 실행해 주기때문에 코드를 줄여 간결하게 만들어 준다.
초기화식: for문 내부에서 사용되는 로컬변수, 조건식과 실행문, 증감식에서 사용할 변수를 초기화 하는 역할
초기화식이 필요 없을 경우에는 다음과 같이 초기화식을 생략할 수 있다.
int i = 1;
for(; i<=100;, i++){ ... }
초기화식이 2개 이상일 수도 있고, 증감식도 2개 이상일 수 있다.
이런 경우에는 쉼표(,)로 구분해서 작성한다.
for (int i=0, j=100; i<=50 && j>=50; i++, j--) { ... }
package chapter04.sec02.exam01;
//반복문인 for문을 활용하여, 1부터 10까지의 정수(int)형 숫자값을
//화면으로 출력하는 자바 프로그램 예시소스 코딩
public class ForprintFrom1To10Example {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
1부터 100까지 합을 출력
package chapter04.sec02.exam02;
//반복문인 for문을 활용하여, 1부터 100까지의 정수값 합을 구하는
//자바 프로그램 소스 코딩입니다
public class ForSumFrom1To100Example {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i; //sum = sum + i;
}
System.out.println("1부터 100까지의 정수값 합 = " + sum);
}
}
package chapter04.sec02.exam02;
import java.util.Scanner;
//반복문인 for문을 활용하여, 1부터 100까지의 정수값 합을 구하는
//자바 프로그램 소스 코딩입니다
public class ForSumFrom1To100Example {
public static void main(String[] args) {
//scanner 클래스를 활용하여, 입력정수값까지 숫자들의 합을
//화면으로 표시하는 소스코딩 수정을 해보시기 바랍니다.
//예를 들어 5를 입력하면, 다음과 같이 화면 결과값이 나타나도록한다.
// 1부터 5까지의 정수 값 합 = 15
Scanner scan = new Scanner(System.in);
System.out.println("값을 입력하세요==>");
int num = scan.nextInt();
int sum = 0;
for (int i = 1; i <= num; i++) {
sum += i; //sum = sum + i;
}
System.out.println("1부터" + num + "까지의 정수값 합 = " + sum);
}
}
1부터 100까지 합을 출력2
초기화식을 for문 전에 선언하면 전역에 사용가능하다
package chapter04.sec02.exam03;
//변수 i를 for문의 초기화식에서 선언하지 않고, for문 코딩하기 전에
//선언한다면 for문 내부 뿐만 아니라 for문을 벗어나서도 사용하는 자바 프로그램 예시 코딩입니다.
public class ForSumFrom1To100Example2 {
public static void main(String[] args) {
int sum = 0;
int i = 0;
for (i = 1; i <= 100; i++) {
sum += i; //sum = sum + i;
System.out.println("sum 값 =" + sum);
}
System.out.println("1~ " + "합=" + sum);
}
}
package chapter04.sec02.exam03;
import java.util.Scanner;
//변수 i를 for문의 초기화식에서 선언하지 않고, for문 코딩하기 전에
//선언한다면 for문 내부 뿐만 아니라 for문을 벗어나서도 사용하는 자바 프로그램 예시 코딩입니다.
public class ForSumFrom1To100Example2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("값을 입력하세요==>");
int num = scan.nextInt();
int sum = 0;
int i = 0;
for (i = 1; i <= num; i++) {
sum += i; //sum = sum + i;
System.out.println("sum 값 =" + i +", sum 값 =" + sum);
}
// 101-1 >
System.out.println("1~ " + num + "합=" + sum);
}
}
ForFloatCounter
for 문을 사용할 때 주의할 점
초기화에서 루프 카운터 변수를 선언할 때 부동 소수점 float 타입을 사용하면 안된다.
이론적으로 루프타임을 10번을 반복해야하지만 0.1은 float 타입에 정확히 표현할 수 없기 때문에
루프 카운터 변수 x에 더해지는 실제 0.1보다 약간 크다.
그래서 루프는 9번만 실행된다.
ForMultiplicationTable 중첩 for 문
for문 또 다른 for문을 내포할 수 있는데, 이것을 중첩 for문이라고 한다.
구구단 만들기
m =2 일때 n은 1~9까지 변하면서 2 X n = 2*n을 출력하게 된다.
<바깥 for 문>
바깥 for문 안에 안쪽 for문을 삽입한다.
package chapter04.sec02.exam05;
// 중첩 for 문 (for 문 안에 또 다른 for문을 내포하는것) 활용예시
//구구단을 출력하는 예시 코드를 소스코딩해봅니다.
public class ForMultiplicationTableExample {
public static void main(String[] args) {
for (int dan = 2; dan <= 9; dan++) {
System.out.println("***" + dan + "단***");
for (int num = 1; num <=9; num++) {
System.out.println(dan + " X " + num + "=" + (dan*num));
}
}
}
}
while문
조건에 따라 반복할 때 주로 사용한다.
시작할 때부터 조건식을 검사하여 블록 내부를 실행할 지 결정
조건식이 true일 경우에 계속해서 반복한다. 조건식에는 비교 또는 논리 연산식이 오는데 조건식이 false일 경우 반복행위를 멈추고 while문을 종료한다.
1부터 10까지 출력
1부터 100까지 합을 출력
package chapter04.sec02.exam07;
import java.util.Scanner;
//while 문을 활용하여, 1부터 100까지의 합을 출력하는 자바 프로그램 소스코딩
public class WhileSumFrom1To100Example {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("합계값 구하고 싶은 정수를 입력하세요 ==>");
int num = scan.nextInt();
int sum = 0;
int i = 1;
while (i<=num) {
sum += i; //sum = sum + i;
i++;
}
System.out.println("1 ~ " + num + "합 =" + sum);
}
}
do-while문
do 무조건 실행하고 반복
블록 내부의 실행문을 우선 실행하고 실행 결과에 따라 반복실행을 계속할지 결정
조건을 나중에 검사
1부터 100까지 합구하기
'☭DEVELOPER > #2 웹개발(자바기반 풀스택)' 카테고리의 다른 글
[BACKEND]JAVA_ECLIPSE⑧ Break문 (2) | 2023.08.21 |
---|---|
[BACKEND]IF, FOR, SCANNER 복습 (0) | 2023.08.21 |
[BACKEND]JAVA_ECLIPSE07 조건문과 반복문 (0) | 2023.08.18 |
[BACKEND]JAVA_ECLIPSE06_연산자 (0) | 2023.08.18 |
[BACKEND]JAVA_ECLIPSE05_변수와 시스템 입출력 (0) | 2023.08.17 |