반복 (for 구문)
for(선언부 ; 조건부 ; 증감부) {}
선언부 : 반복에 필요한 변수(반복수)를 선언하는 영역
조건부 : 반복이 실행되는 조건을 지정하는 영역
증감부 : 반복수 변화 규칙을 입력하는 영역
** 각 영역은 세미콜론(;)으로 구분지어준다
for 구문 예시
for(int i = 0 ; i <= 10 ; i = i + 1) {}
// 선언부 i = 0 ; // 반복수 i의 초기값은 0
// 조건부 i <= 0 ; // 반복수 i가 10이하가 될 때까지 {} 안의 동작 반복
// 증감부 i = i + 1 // 반복수 i를 1씩 증가시켜라
** 증감부 입력 형태
//반복수 i를 1씩 증가시키는 방법 = 이전 i에 +1을 더하라
for(i = 0 ; i <= 10 ; i ++) {} //증감 연산자 이용
for(i = 0 ; i <= 10 ; i = i + 1) {} //산술 연산자 이용
for(i = 0 ; i <= 10 ; i += 1) {} //대입 연산자 이용
** Java의 연산자 (증감 / 산술 / 시프트 / 비교 / 비트 / 논리 / 조건 / 대입 연산자)
1) 증감 연산자 (1순위)
++ i | i를 1씩 증가시킨 후 참조하여 대입 |
-- i | i를 1씩 뺀 후 참조하여 대입 |
i ++ | 참조하여 대입한 후 i를 1씩 증가시켜라 |
i -- | 참조하여 대입한 후 i를 1씩 감소시켜라 |
** 전위 증감과 후위 증감
//전위 증감
i = ++ x;
//전위 증감과 동일한 동작을 하는 코드
++ x; //증가시킨 후
i = x; //참조하여 대입
//후위 증감
j = y ++;
//후위 증감과 동일한 동작을 하는 코드
j = y; //참조하여 대입한 후
y ++; //증가
2) 산술 연산자 (2순위)
+ | 두 숫자의 덧셈 |
- | 두 숫자의 뺄셈 |
* | 두 숫자의 곱셈 |
/ | 두 숫자의 나눗셈에서 몫 |
% | 두 숫자의 나눗셈에서 나머지 |
3) 대입 연산자 (8순위)
= | 연산자의 오른쪽 값을 왼쪽 변수에 대입 |
+= | 연산자의 오른쪽 값을 왼쪽 변수에 더한 후 대입 |
-= | 연산자의 오른쪽 값을 왼쪽 변수에 뺀 후 대입 |
*= | 연산자의 오른쪽 값을 왼쪽 변수에 곱한 후 대입 |
/= | 연산자의 오른쪽 값을 왼쪽 변수에 나눈 후 몫을 대입 |
%= | 연산자의 오른쪽 값을 왼쪽 변수에 나눈 후 나머지를 대입 |
day05 - loop - Test01 : for 예제
day05 - loop - Test02 : 반복 입력을 받는 방법 (입력을 5번 받는 방법)
day05 - loop - Test03 : 반복의 범위와 반복수의 활용
day05 - loop - Test04 : 타이머 문제
day05 - loop - Test05 : 1부터 100까지 짝수만 또는 홀수만 출력
day05 - loop - Test06 : 1부터 100까지 숫자 중 7의 배수만 출력 / 1부터 99까지 숫자 중 5가 들어간 숫자만 출력
day06 - loop - Test07 : 369 게임 - 1부터 100까지 숫자 중 3, 6, 9의 갯수에 따라 "짝"을 출력하는 방법
for구문의 응용 - 카운트 (갯수 세기)
int count = 0;
for(i = 1 ; i <= 10 ; i ++) {
if(조건) {
count++;
}
}
int count = 0; | count라는 변수의 초기값을 0으로 한다 |
for(i = 1 ; i <= 10 ; i ++) {} | 반복수 i의 초기값을 1로 하고 10이하가 될 때까지 반복하며 매 횟수당 i를 1씩 증가시킨다 |
if(조건) { count++; } | 만약 조건을 만족한다면 count라는 변수에 +1을 더한다 |
day05 - loop - Test08 : 1부터 100까지 숫자 중 5가 들어간 숫자의 갯수
day05 - loop - Test09 : 1부터 100까지 숫자 중 소수의 갯수
day05 - loop - Test10 : 1부터 100까지 숫자 중 홀수의 갯수와 짝수의 갯수 각각 출력
for구문의 응용 - 합계 구하기
int total = 0;
for(int i=1; i<=100; i++) {
total += i;
}
int total = 0; | total이라는 변수의 초기값을 0으로 한다 |
for(i = 1 ; i <= 100 ; i ++) {} | 반복수 i의 초기값을 1로 하고 100이하가 될 때까지 {} 안의 동작을 반복하며 매 횟수당 i를 1씩 증가시킨다 |
** 반복수의 증감부를 이용하여 합계를 구할 수 있다
반복부에서 반복수 i가 1씩 증가하므로 반복수 i를 total에 더한 후 대입하는 과정을 반복하면
1부터 100까지의 합계를 구할 수 있다
day05 - loop - Test11 : 합계 구하기
day05 - loop - Test12 : 매일 전날보다 3개씩 더 푸시업을 할 때 ?일 후 푸시업 개수의 합계
day06 - loop - Test13 : 매일 전날보다 2배씩 더 돈을 받을 때 ?일 후 금액 합계
day06 - loop - Test14 : 숫자 입력시 해당 구구단이 출력되며 사용자가 정답 입력시 맞은 갯수와 틀린 갯수 카운트 후 출력
'국비교육 > 국비교육' 카테고리의 다른 글
day7 - 0801 (0) | 2022.08.04 |
---|---|
Day6 - 0730 (0) | 2022.08.01 |
day4 - 0728 (0) | 2022.07.28 |
Day3 - 0727 (0) | 2022.07.27 |
Day2 - 0726 (0) | 2022.07.26 |