본문 바로가기
JAVA

2023년 03월 05일 - 둘째 주 수업!

by 용굥이 2023. 3. 9.

조건문 다음으로 반복문을 배웠다.

반복문이란, 작성한 조건에 맞을 때까지 반복을 하는 것이다.

-> true 인 경우일때까지 계속 반복을 하고, false 인 경우엔 반복을 종료한다!

반복문 while 을 사용하여 작성해 보았다.

확인해보면 i 라는 변수를 초기화 시켜주었고, 변수에 조건을 넣어서 실행을 시켜주었다.

출력이 되기 전에 후 처리문을 작성하였는데 확인해보면 변수 뒤에 ++ 가 입력되어있다.

 

i++ : 현재 값에 1 더해진 값이 출력됨

++i : 현재 값을 먼저 출력한 후 다음 값에 1을 더한 값이 출력됨

i -- : 현재 값에 1 차감된 값이 출력됨

-- i : 현재 값을 먼저 출력한 후 다음 값에 1을 차감된 값이 출력됨

처리문을 보자면 위와 같이 확인할 수 있다.

 

while 문의 기본구조!

while(조건문) {

<수행할 문장1>

<수행할 문장2>

...

}

출력결과

i 를 0으로 초기화를 시켜준 후 i < 5 조건을 넣어서 실행한 결과 0 부터 4까지 출력된 후 프로그램 종료 메세지가 나타난 것을 확인할 수 있다!

이 조건문을 활용해서 몇번의 실습을 해보았다!

실습 내용을 확인해 보자면 2가지의 실습을 진행하였는데 첫번째 실습(18 ~ 22행)으로는 "홍길동" 이름을 넣은 후 뒤에 숫자를 넣어 확인을 하게끔 하였다.

그리고 두번째 실습(24 ~ 28행)으론 a 에 숫자를 넣어서 101부터 106까지 순서대로 나타나게끔 하였다.

출력 결과

출력된 내용을 확인한 결과 원하는 조건대로 출력이 잘 된 것을 확인할 수 있다.

여기서 추가로 확인할 수 있는 것은 조건에 넣은 숫자를 보면 몇번 반복할 건지에 대한 반복횟수를 지정해 주어서 바로 눈으로 확인할 수 있게끔 작성을 한 것이다!

 

또 다른 실습으로 변수를 초기화 시켜서 변수에 원하는 값을 넣어서 7번 반복하여 1부터 7까지를 표현한 후 거꾸로 표현을 한번 더 하게끔 하는 실습을 해 보았다.

여기서 중요한건 입력하는 값이 예를 들어 3을 입력하면 처음 출력되는 값은 1부터 7까지 표현이 순서대로 표현이 되고 그 이후에 3부터 역으로 표현이 되는 것이다.

위와 같이 조건문을 만들어 주었다.

여기서 원하는 값을 3으로 넣어서 출력이 되는 걸 확인해 보는걸로 한다면?

출력 결과

아까 설명한 것과 같이 출력된 것을 확인할 수 있었다!

 

다음으론 중첩반복의 실습을 진행하였는데, 내용은 4교시까지 있으면서 총 60분 중 50분까지 표시한 후 그 뒤 10분을 쉬는시간으로 표시하여 1분부터 10 분까지 표시를 하는 것이었다.

나는 이 실습을 할 때 좀 많이 헷갈렸었는데 먼저 실습한 내용을 본다면

변수에 몇교시인지를 넣어놓고, 50분, 10분을 나눠서 표시를 한 후 출력이 되게 셋팅을 하였다.

출력한 내용이 너무 길어서 부분만 확인을 해본자면

출력결과

이렇게 50분까지 차례대로 출력이 되게 하고,

출력 결과

10분 쉬는시간을 표시하여 마찬가지로 차례대로 출력한 후 다음 교시로 넘어가는 것을 실습으로 해보았다.

 

다음으론 우리가 복권을 살 때 랜덤으로 번호가 추출이 되는 기능을 사용하여 Random 함수를 사용해 보았다.

실수를 사용한 math.random 함수와 정수를 사용한 math.random 함수이다.

실수를 사용한 함수를 보면 math.random 함수를 rNum 이라는 변수에 넣어서 출력을 하였다.

출력결과

출력한 결과를 확인해 보면 소수점 자리가 길게 나와있는데, 다음으로 정수를 사용한 함수를 보면!

정수로 초기화를 해주고 double 자료형으로 함수를 넣어 진행을 한 것을 확인할 수 있다.

여기서 정수로 표시를 하게끔 만들었는데 그러기 위해서 다운캐스팅을 사용한 것이다.

실수형으로 함수를 불러왔지만 출력을 할 때 정수형으로 처리하여 10을 곱하면 정수형으로 나오게 되는 것이다.

출력결과

출력을 하면  이렇게 정수형으로 출력된 것을 확인할 수 있다.

다운캐스팅을 실행하기 위해서 괄호로 변환할 자료형을 넣어 주는 것이다.

여기서 알아둬야 할 것은 다운캐스팅은 문자 -> 정수 -> 실수 순서로 만들 수 있는데 그렇다고 문자에서 실수로 바꾸지 못하는 것은 아니다.

 

또 나오는 실습~!

실습은 많이 해볼수록 좋다고 생각함.

아까 복권 랜덤번호 추출된다고 말한 거를 생각해서 복권 실습을 해보았다.

while 문을 사용하였는데, i < 6 으로 되어있는 6 의 숫자는 몇개를 뽑을 것인지 표시를 하는게 한눈에 알아보기 쉽다고 앞에서 말한 거!! 그걸 이용해서 6개 숫자를 뽑을 것이다 라는 표기를 해놓고 0부터 46까지의 숫자 중 6개의 정수를 뽑아서 출력을 해보았다.

출력결과

6개의 숫자가 출력된 것을 확인할 수 있다.

 

다음 실습으로~~~~~~

while 문과 random 함수를 사용하여 5가지의 숫자를 뽑아서 가장 큰 숫자를 마지막에 표시하는 실습을 진행했다.

10개 숫자 뽑아서 비교하는 걸로 했었는데 여기 올리려니까 너무 많아서 5가지만 뽑아서 보여주는걸로 수정했음 ㅎㅋ

몇가지의 숫자를 뽑을지 설정하는 곳을 네모로 표시해 보았다.

5가지의 숫자를 뽑을 것이다 라고 표기를 한 것인데, 5개를 한번에 비교를 하는 것이 아닌 두개의 숫자를 비교하여 큰 숫자를 뽑고 다음 숫자가 나온 숫자랑 비교하고 이런식으로 차례대로 큰 숫자를 비교해서 뽑는 것이다.

 

출력된 결과를 확인해보면?

출력결과

이렇게 출력된 것을 확인할 수 있다.

보면 맨 처음에 나온 4가 제일 큰 숫자로 표시가 되어있는데 두번째나 세번째에 4보다 큰 숫자가 나오게 된다면 그 숫자가 제일 큰 숫자로 표시가 될 것이다.

 

여기까지 둘째주 수업을 마무리하였는데, 마지막에 배운 랜덤함수, 그리고 랜덤으로 뽑은 숫자들 중에 가장 큰수를 비교해서 표시하는 내용은 아직 솔직하게 이해를 다 하지 못했다.

랜덤 함수를 좀 더 공부해서 이해를 할 수 있게끔 해야 될 것 같다.

 

수업에 같이 듣는 컴퓨터 공학과 나온 학생들이 있는데 그 친구들을 보면 나는 따라가려면 아직 멀었다는 생각이 들었는데 솔직히 현타가 좀 오기도 하고 기가 죽기도 했다.

4년동안 그거만 배운 애들인데 당연히 못 따라가는게 맞다고 생각을 하면서도 어떻게 해야 따라갈 수 있을지도 걱정이 되기도 한다.

난 그 사람들보다 좀 더 열심히 공부를 해야겠당 화이띵..!!!