써먹는 웹개발

[Java Study]3. 반복문 본문

Study/Java & Python

[Java Study]3. 반복문

kmhan 2018. 2. 11. 01:03


728x90
반응형

※ 해당 글은 제가 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=0i=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문 한개를 사용 


 


728x90
반응형


Comments