2021년 2월 27일 수업 정리
반복문 for 문
for문 이란
반복해서 수행해야 할 것을 한 번에 해결해준다.
여러 개의 값들 중에 원하는 값을 골라서 사용하고 싶을 때 for문에 개수 범위를 입력하고 for문안에 조건(보통 if문)을 넣어 원하는 값을 골라서 사용할 수 있다.
또는 하나의 정보를 여러 곳에 저장하고 싶을 때 for문에 여러 곳의 개수 범위를 입력하고 for문안에 여러 곳에 저장을 수행하는 코드를 넣어 사용할 수 있다.
이외에도 여러가지의 이유로 for문을 사용한다.
for문의 구조
for(초깃값; 조건식; 증감식){
//반복되어 수행될 문장;
}
for문을 작성할 때 보통 초깃값의 변수는 i,j,k를 많이 사용하며,
초기화를 1로 설정하여 사용할 수 있지만,
보통은 0으로 초기화하고 사용한다.
초기화를 0으로 했기 때문에 조건을 i<3; 으로 주었을 때 수행되는 횟수가 3번이다.
for문 실행 순서
for문 시작 -> 초깃값 -> 조건식(결과: true) -> 수행문 -> 증감식 -> 조건식(결과: falsse) -> for문을 빠져나온다.
조건식의 결과가 true일 경우 위의 진한 글씨가 반복된다.
for문의 예
1. 증감식이 증가 연산자일 경우
아래의 예시의 경우 i변수가 10보다 작을 때까지 실행 된다.
for(int i=0; i<10; i++){ // for문을 i가 0부터 10보다 작을 때까지 10번 실행할 것이라는 의미
if(i%2==0){ // 2로 나눴을 때 값이 0인것만 출력하겠다는 의미
System.out.println(“for문 예시 i의 값은?”+i );
}
}
값 =>
for문 예시 i의 값은? 0
for문 예시 i의 값은? 2
for문 예시 i의 값은? 4
for문 예시 i의 값은? 6
.
. (생략)
증감식을 i+2로 바꿔도 같은 값이 나오지만 잘 사용하진 않는다.
2. 증감식이 감소 연산자를 사용할 경우
아래의 예시의 경우 변수i가 0보다 클 때까지 실행된다.
for (int i=9; i>0; i--) {
}
3. 조건을 생략할 경우 (잘 사용하지 않는다.)
3.1. 초기값 생략
- 초기값을 생략할 경우 for문을 작성하기 전 초기값을 생성해야 하고
초기값 자리에 “;”(세미콜론)을 입력해야 한다.
int i=0;
for(; i>10; i++){}
3.1. 초기값, 조건식, 증감식 생략
- 무한 루프로 실행되는 for문이 이다.
무한 루프를 끝내기위해선 break;를 사용한다.
for(;;){}
반복문 중첩 for 문
중첩 for문이란
for문안에 또 다른 for문이 들어있는 것을 중첩 for문이라고 한다.
중첩 for문의 구조
for(int i=0; i<반복횟수; i++){
for(int j=0; j<반복횟수; j++){
문장;
}
}
중첩 for문의 예시
1부터 9까지의 단 중에 짝수 단(2단, 4단, 6단, 8단)만 출력하는 for문의 예시
for(int i=2; i<10; i++){
for(int j=2; j<10; j++){
if(j%2==0){
System.out.println(j+” x ”+i+” = ”+j*i);
}
}
}
3행 5열을 출력하는 for문 예시
for(int i=0; i<3; i++){ // 안쪽 for문이 끝나면 줄 바꿈 3번 출력
for(int j=0; j<5; j++){ // 줄 바꿈 없이 *을 5번 출력
if(j%2==0){
System.out.print(“*”);
}
System.out.println();
}
}
결과 값
*****
*****
*****
마지막으로
for문이 끝나면 for문에서 선언하고 생성된 변수의 데이터 저장공간은 없어진다.
예를 들어 아래의 코드에서는
for(int i=0; i<10; i++){
if(i%2==0){
System.out.println(“for문 예시 i의 값은?”+i );
}
}
//for문 아래, 이부분에서 for문에 사용된 i변수를 출력하지 못한다.
전역 변수와 지역 변수와 관련된 이야기인데 아직 배우지 않았으니 여기 까지만 하고 넘어간다.
'Java' 카테고리의 다른 글
JAVA 제어자 접근 제어자, 기타 제어자 (0) | 2021.03.15 |
---|---|
JAVA 인터페이스 (0) | 2021.03.11 |
JAVA JSON value sort / 자바 제이슨 값 정렬 (0) | 2021.03.10 |
JAVA 클래스의 상속/ 클래스 상속 개념 (0) | 2021.03.07 |
JAVA 문자열 메소드: 문자열 길이, 문자열 자르기 (1) | 2021.03.05 |