써먹는 웹개발
[Java Study]3. 반복문 본문
※ 해당 글은 제가 14년도에 학원 다닐때 직접 작성했던 자료입니다.
반복문을 배우면 if문에서 했던 계산기 기능을 반복해서 사용할 수 있습니다.
***For문
가장 처음에 선생님께서 연습장에 써보라고 한 문제가 있습니다.
이 문제는 for문을 가장 잘 이해할 수 있는 문제 중 하나가 아닐까 합니다.
반복문 밖의 출력(print(i);) 값은???
제가 한번 해보겠습니다.
실행 순서
① 변수 선언 및 초기화 : 제일 처음에 실행되면서 한번만 실행됩니다.
② 조건식 : 조건이 참일 동안에는 계속 돌아갑니다.
③ 문장 : 반복문이 참일때 문장이 실행됩니다.
④ 카운터 : 마지막으로 반복적으로 증감시킵니다.
순서 | 1.i=0(초기화, 한번만 실행) | 2.i<8 | 3.i+=i (i=i+i) | 4.i++ | 5.print(i) |
i=0 | i<8(참) | i=0+0=0 | i=0+1=1 | ||
i<8(참) | i=1+1=2 | i=2+1=3 | |||
i<8(참) | i=3+3=6 | i=6+1=7 | |||
i<8(참) | i=7+7=14 | i=14+1=15 | |||
i(15)<8(거짓) | x | x | i=15(출력) |
*** While문
또 하나의 반복문은 While문이 있는데 for문과 다른 점은 카운터에 해당하는 것이 없다는 것입니다.
단순하지만 무한루프에 빠지지 않도록 주의합시다.
===========================================================================================================================
다음은 break와 for문의 차이를 명확히 알 수 있는 예제입니다.
- break를 하면 반복문을 빠져 나갑니다.
- continue문은 for문의 카운터로 가게됩니다.
==========================================================================================================================
많은 학생들이 고전을 면치 못한 반복문 과제입니다.
1. 갤런을 리터로 바꾸는 프로그램
- 반복문의 원리를 알고 있다면 간단한 문제였을 것입니다.
- 다만, 소수점 자르기와 정렬하는 방법을 배울 수 있었던 좋은 문제였습니다.
방법 1) 문자열 형태로 변환해 소수점 두자리까지 출력 : String URL = String.format([포맷],[숫자]);
방법 2) 6자리씩 끊어서 정렬 : System.out.printf([포맷],[숫자]);
2. Simple Calculator Program('x'를 입력하면 종료)
- 제어문에서 배운것에 반복문과 반복문을 빠져나가는 방법을 추가할 수 있는지 묻는 문제입니다.
- 여기서 주의할 점은 문자를 입력받은 변수와 빠져나갈때 변수를 동일하게 주는 것입니다.
- 다음에 클래스 단원에서도 쓰이는 문제이니 구조를 확실히 이해하고 넘어갑시다.
3. 숫자를 입력받아 합계를 구하는 프로그램(0을 입력하면 종료)
- 입력받은 숫자들을 같은 변수안에 추가하는 방법을 생각해 보는 문제 입니다.
- 반복할때마다 다른 값을 집어넣기 때문에 입력받아서 기존변수에 덧셈만 하면 됩니다.
- 다만, 처음하시는 분들은 익숙치 않으니 옆에 켜놓고 보면서라도 직접 코딩하셔야 이해가 빠릅니다.
4. 3번 문제를 응용해서 짝수의 합과 홀수의 합을 구하시오.(단, 입력횟수는 미리 입력받는다.)
- 입력받은 숫자를 짝수와 홀수로 구분할 수 있는지 묻는 문제입니다.
- 3번 문제처럼 하되 나머지를 나눈 값이 1이면 홀수를 나타내는 변수에 합하고, 0이면 짝수를 나타내는 변수에 합하시면 됩니다.
5. 간단한 문자 추측 프로그램
- 입력받아서 아스키값 또는 문자을 찾아 내는 문제입니다.( || : 또는 / && : 둘다 포함하는 )
6. "."이 입력이 될 때까지 키보드 입력을 읽어서 입력된 공백(스페이스)의 개수를 세고 그 합을 출력하시오.(System.in.read())
- 아스키코드값에 공백(스페이스)을 비교하여 맞으면 공백의 개수를 추가해서 마침표로 while문을 종료합니다.
- 5번 문제를 이해했다면 쉽게 풀 수 있는 문제입니다.
7. 대문자를 입력받으면 소문자로 출력하고 소문자를 입력받으면
대문자로 출력하는 프로그램("."을 입력하면 종료)
- 아스키코드 값을 수정하면 되는 간단한 문제입니다.
// 8번은 다음 게시글에 같이 올리겠습니다.
9. 홀수만 출력하고 리드라인을 넘겨주는 프로그램이다.
- 10이 될때마다 라인을 출력하고 2의 배수를 생략할 수 있는지 묻는 문제입니다.
방법 1) for문에 if문 두개를 사용
방법 2) 이중 for문에 if문 한개를 사용
'Study > Java & Python' 카테고리의 다른 글
[Java Study]5. 배열(+버블정렬) (0) | 2018.02.11 |
---|---|
[Java Study]4. 클래스(+계산기) (0) | 2018.02.11 |
[Java Study]3-2. 별찍기 어디까지 가봤니? (이중 for문 연습,+8번 과제) (0) | 2018.02.11 |
[Java Study]2. if문(제어문) (0) | 2018.02.11 |
[Java Study]1. 자바 변수 (0) | 2018.02.11 |