하단에 코드를 작성하는
풀 동영상이 있다.

동영상을 시청하고 게시물을
본다면 이해에 도움이
될거라 생각한다.



숫자를 6개에서 100개로 늘리면
그만큼 변수와 관련된
코드도 늘어난다.


자바에서는
고정된 수를 보관하여
사용할 수 있는
'배열'을 제공 한다.


'배열'이란
단일 유형의 값의 고정 된 수
보관하는 컨테이너 객체이다.


6개든 100든 숫자들을 배열에 담아
숫자 색인으로 
사용(읽고 저장) 할 수 있다.

[노트에 배열 정리하기]


* 6개의 변수 대신 배열 사용하기

[배열 사용하기]


코드의 내용은 다음과 같다.


1) int [] numbers = new int[6];
정수배열 참조변수 numbers선언하고,
new 연산자를 사용하여 길이가 6인 정수
배열 객체를 생성하여 그 참조값
참조변수 numbers에 저장(할당) 한다. 


2) numbers[0] = 5;
numbers 첫번째 요소(인덱스 0)에
5를 저장한다.


아래 동영상은 rename 기능을
이용하여 쉽게 first를 numbers[0]으로
변경하는 내용이다.

[코드 작성 동영상]



* 반복문(for) 사용하여 배열의 값 출력하기

반복문(for)사용하여
배열의 요소들을
출력해 보자

[for문으로 배열의 요소들을 출력하기]

(1) 초기화(2) 종료,
(3) 증가(4) 실행문
작성하여 특정 조건이
충족될때까지 반복할 수 있다.


즉, 왼쪽 그림의 numbers의 인덱스
0, 1, 2, 3, 4, 5로 변하는 부분을 변수로 바꾸고
반복문(for)을 이용하여 오른쪽의 그림처럼
바꿀수 있다.


반대로 오른쪽 그림의 코드를 풀어 쓰면
왼쪽 그림의 코드가 된다.
코드의 실행 순서를 적어보면
다음과 같다. 


(1) 변수 index의 값을 0으로 초기화 한다.

(2) 6보다 변수 index의 값 0보다 작아서 

(4) 코드를 실행 한다.

(3) 변수 인덱스의 값을 1증가 한다.

index의 값은 1가 된다.

(2) 6보다 변수 index의 값 1보다 작아서 

(4) 코드를 실행 한다.

(3) 변수 인덱스의 값을 1증가 한다.

index의 값은 2가 된다.

(2) 6보다 변수 index의 값 2보다 작아서 

(4) 코드를 실행 한다.

(3) 변수 인덱스의 값을 1증가 한다.

index의 값은 3가 된다.

(2) 6보다 변수 index의 값 3보다 작아서 

(4) 코드를 실행 한다.

(3) 변수 인덱스의 값을 1증가 한다.

index의 값은 4가 된다.

(2) 6보다 변수 index의 값 4보다 작아서 

(4) 코드를 실행 한다.

(3) 변수 인덱스의 값을 1증가 한다.

index의 값은 5가 된다.

(2) 6보다 변수 index의 값 5보다 작아서 

(4) 코드를 실행 한다.

(3) 변수 인덱스의 값을 1증가 한다.

index의 값은 6가 된다.

(2) 6보다 변수 index의 값 6보다 작지 않아서

반복문(for)을 종료 한다.


[코드 작성 동영상]



* 반복문(for) 사용하여 정렬코드 작성하기

이제 정렬하는 부분을
for문을 적용해 보자.

[코드 작성 동영상]


위에서 for문을 이용하여
배열의 값을 출력한것처럼
1~5를 변수로 만들고
for문을 작성하면 된다.

[코드 작성 동영상]


for 문을 적용하다 보니
for문을 적용할 수 있는
숫자만 다른 부분이 보인다.

마찬가지로 for문을 적용해 보자.

[이중 for문]


for문안for문
있는 모양이 됐다.

이것이 이중 for문이다.

이중 for문이 되면서
index = 1, index = 2, ...... , index = 5
이 부분이 index2 + 1
바뀌었다.

[이중 for문]


* 메서드(method) 및 정리

아직까지는 6개의 숫자만으로
정렬하고 짝수를 출력했다.

배열 속성length이용하면
배열의 요소의 갯수
맞춰서 반복 실행 한다.

다음과 같이 바꿔주면 된다.

6 -> numbers.length     
5 -> numbers.length - 1


main 메서드에 
1) 배열의 요소들을 출력하기,
2) 배열을 정렬하기,
3) 짝수만 출력하기      
3개의 기능의 코드들이
한꺼번에 있다.

기능별 메서드
만들면, 코드의
재사용성을 높여준다.

eclipse의 Refactor - Extract Method
기능을 이용하여 간단하게
메서드를 만들었다.

[완성 코드]


[코드 작성 동영상]


부족한 부분이 있지만,
문제 해결을 위한
코드를 완성했다.

다음 게시물을 마지막으로
맛보기 컨텐츠를 마무리
예정이다.

보고 읽는 것만으로도
도움을 되겠지만,
직접 따라 작성해서
결과를 확인했으면
좋겠다.


* 코드 작성 풀 동영상

아래 동영상은
배열과 반복문을 사용하여
만든 풀 동영상이다.

[코드 작성 동영상]



반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

오름차순으로 정렬을

했으니 짝수를 출력하는 

코드를 작성해 보자.


'짝수'란,

n을 임의의 정수라 할때

2n의 꼴로 표시되는

정수를 말한다.


다른 말로 2로 나누었을때

나머지가 0인 정수이다.


자바에서는 '%' 연산

이용하여 코드

작성 할 수 있다.



변수 first 값을 2로 나눈 나머지가 0(짝수)이면

변수 first값을 출력!


어렵지 않게 

if문과 '%'연산자를 이용하여

짝수를 구별 할 수 있다.


아래는 완성된 코드와

코드를 작성하는 동영상이다.





드디어

'5 30 3 11 8 12'라는 것을

'8 12 30'으로 만들었다.


6개의 변수에

다른 값으로 변경하여

실행시켜 보자.


아마도 오름차순으로

정렬된 짝수들이

출력될 것이다.


그런데 그런데......

문제가 하나 생겼다.


숫자 6개에서 7개로

숫자를 늘려서 하고 싶다.


1개쯤이야 하고

추가 코드를 

작성하면 된다.


그럼 숫자를

100개로 늘리면??


.

.

.

.

.

.


100개로 늘리면

변수도 100개 만들어야 하고

오름차순 코드도

변수의 개수에 맞게

반복되는 많은 코드

작성해야 한다.


다음 시간에는

배열반복문

이용하여

문제를 해결해 보자.


이전글 - 2020/11/20 - [EDU] - 언어를 본격적으로 배우기 전에! 맛보기 #03 - 노트에 정리한 생각을 코드로 작성하기(변수와 비교문 이용하여 오름차순 정렬하기)

다음글 - 2020/12/09 - [EDU] - 언어를 본격적으로 배우기 전에! 맛보기 #05 - 배열과 반복문을 이용하여 문제를 해결해 보자



반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

언어를 본격적으로 배우기 전

어렵지 않게 시작했으면 

좋겠다는 생각으로

문제를 해결해 보면서 

맛보기 형식으로

글을 작성해 볼까 한다.


문제를 해결하면서 

알 수 있는 것들

1. 생각들을 어떻게 코드로 작성하고,

2. 변수를 이해하고,

3. 반복문을 이해하고,

4. 비교문을 이해하는것이다.

+ 5. @


사용할 언어자바이며

개발 환경툴이클립스 IDE

사용한다.


문제

------------------------------------

5 30 3 11 8 12

<처리>

8 12 30


*


702 301 80 1000 1

<처리>

80 702 1000

------------------------------------


'5 30 3 11 8 12'라는 것을

어떻게 하면

'8 12 30'으로 만들 수 있을까?


잠시 생각해 보자!

.

.

.

.

.

.



6개의 숫자3개의 숫자

줄어 들었다.


자세히 보니 작은 숫자에서

큰 숫자로 되어 있다.

또 보니 숫자가

짝수이다.


주어진 숫자를 

오름차순으로 정렬하여

짝수만 표시하면

되는 것이다.


두번째 예도 마찬가지로

오름차순으로 정렬된

짝수이다.


거꾸로

'짝수만 오름차순으로 정렬한다'

라고 생각해도 맞다.


이 작은 차이는 

코드를 작성하면서

자연스럽게 알게 될 것이다.


계속......


다음글 - 2020/10/23 - [EDU] - 언어를 본격적으로 배우기 전에! 맛보기 #02 - 정렬 과정을 노트에 그려 보자


반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,