▶ 반복문
프로그램 흐름을 제어하는 제어문 중 하나 어떤 실행코드를 반복적으로 수행시켜준다.
크게 두종류로 나뉜다.
1. for문
2. while문(do-while)
▶ for 문
■ 기본반목문 (basic loop)
[표현법]
for(초기식; 조건식; 증감식) {
// 반복적으로 실행시킬 코드
}
- 초기식 : 반복문이 시작될 때 "초기에 단 한번만 실행"되는 구문 (반복문에서 사용할 변수를 선언 및
* 초기화 구문) 예) int i = 0;
- 조건식 : "반복문이 수행될 조건"을 작성하는 구문 조건식이 true일 경우 반복문 실행 조건식이 false일 경우 반복문 종료 (보통 * 초기식에 제시된 변수를 가지고 조건식을 작성) 예) i < 10;
- 증감식 : 반복문을 제어하는 변수값을 증감시키는 구문(보통 초기식에 제시된 변수를 가지고 증감식 작성) 예) i++, i+=1
※ 예시
for(;;) { // 초기식, 조건식, 증감식 없어도 에러나지 않는다.(세미콜론만 있으면 된다.)
System.out.println("");
}
■ 실행순서
jvm이 for문을 만나는 순간 초기식 -> 조건식(조건검사) -> true일 경우 실행할 코드를 실행 -> 증감식 -> 조건식(조건검사) -> true일 경우 실행할 코드를 실행 -> 증감식 -> 조건식(조건검사) -> true일 경우 실행할 코드를 실행 -> 증감식 ... -> 조건식(조건검사) -> false일 경우 코드를 실행하지 않고, for반복문 종료.
매번 조건식의 조건검사를 통해서 조건이 true일 경우만 반복해서 실행한다.
예제) 1 ~ 10까지의 총 합계
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
System.out.println("1에서부터 10까지의 총 합계 : " + sum);
예제) 아래 코드 출력해보기
// 1***
// *2**
// **3*
// ***4
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= 4; j++) {
if (j == i) {
System.out.print(i);
} else {
System.out.print("*");
}
}
System.out.println();
}
■ 향상된 반복문 (for loop)
[표현법]
for( 순차적으로 접근할 값을 담을 변수 선언 : 배열/컬렉션 ) {
// 실행할 코드
}
- 배열, 컬렉션과 사용된다.
- 배열 또는 컬렉션의 0번째 인덱스에서부터 마지막 인덱스까지 순차적으로 접근할 목적일 때 사용한다.
- 초기식 x, 조건식 x, 증감식 x
- 반복하는 횟수는 => 배열 또는 컬렉션의 크기만큼 반복한다.
▶ Math.random
- java.lang.Math 클래스에 정의되어있는 random()메소드를 호출하여 매번 다른 랜덤값을 얻어올 수 있다.
- Scanner 생성 시 Scanner new해서 생성했었지만 Math클래스의 경우 별도의 생성없이 사용이 가능하다.
- java.lang => java.base안에 담겨있고, java.lang패키지 안의 모든 클래스에 자동으로 import 되어있다.
■ Math.random을 이용하여 1 ~ 10 사이의 랜덤값 구하기
random() : 0.0 ~ 0.999999999... 사이의 랜덤값을 발생한다.
1) 10을 곱한다. -> 0.0 <= x < 9.999...
2) 1을 더해준다. -> 1.0 <= x < 10.999...
3) 소숫점을 다 버려준다. -> 1 <= x <= 10
즉, 1 ~ 10 사이의 랜덤수를 원한다면 (int) (Math.random() * 10) + 1을 하면 된다.
[표현법]
Math.random() * 출력하고자하는 개수 + 시작수
예제) 1에서부터 10까지 매번 달라지는 랜덤값을 구하고, 그 값까지의 총 합계를 구하기
int random = (int) ((Math.random() * 10) + 1);
System.out.println("랜덤값 : " + random);
int sum = 0;
for (int i = 1; i <= random; i++) {
sum += i;
}
System.out.printf("1부터 %d까지의 총 합은 %d입니다.", random, sum);
'JAVA' 카테고리의 다른 글
JAVA(10-1) 분기문(break) (0) | 2023.03.29 |
---|---|
JAVA(9-2) 반복문(while) (0) | 2023.03.29 |
JAVA(8-2) 제어문(switch) (0) | 2023.03.25 |
JAVA(8-1) 제어문(if) (0) | 2023.03.24 |
JAVA(7-8) 연산자(삼항연산자) (0) | 2023.03.24 |