본문 바로가기

국비교육/국비교육

day5 - 0729

반복 (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