* 이 글은 2020. 3. 6. 8:43에 작성되었던 글입니다 *
공부하면서 복습도 할 겸 블로그를 다시 시작하기로 했다.
학원을 다니기전에 혼자 공부하며 포스팅한 html, c언어 포스팅을 봤는데......ㅎ.ㅎ 내가쓴게 맞나 싶닿ㅎ
암튼 지금은 열심히 java 공부중....
자바의 정석 책으로 공부를 하는건 아닌데,
자바의 정석의 저자님이 pdf파일로 무료 배포하신 연습문제 자료가 있어서 풀어보기로했당.
java 언어를 배우면서 객체지향적인 프로그래밍은 정.말.매.우. 중요하다고 생각한다.
열심히 객체지향적인 코딩을 할 수 있도록 노력해야겠음.
사실 chap07부터 풀지는 않고 06부터 풀었는데
7-2를 푸는데 많은 시간이 소요되었다.........
안풀려서 너무 화가났지만 화가 난 만큼 성취감이 배가 된 거 같아서..ㅋ.ㅋㅋㅋ 이 문제부터 포스팅 하려고한당
자바의 정석 연습문제 7-1
SutdaDeck 클래스의 생성자 코드
public class SutdaDeck {
final int CARD_NUM = 20;
SutdaCard[] cards = new SutdaCard[CARD_NUM];
SutdaCard[] copyCards = new SutdaCard[cards.length];
SutdaDeck() {
int j=1;
int newJ=1;
for(int i=0; i<CARD_NUM; i++) {
if(i>=10) {
cards[i]= new SutdaCard(newJ,false); newJ++;
continue;
}
if(j==1||j==3||j==8) {
cards[i]= new SutdaCard(j,true);
j++;
}else {
cards[i]= new SutdaCard(j,false);
j++;
}
}
}
}
일단 내가 짠 코드는 이러한데.... 방금 모범답안을 봤는데..ㅋㅋㅋㅋ완전 간단하다....
(내 코드는....흠..)
암튼
나의 코드를 보자면,
로컬 변수 j : 카드번호 1~10
로컬 변수 newJ : 카드번호 리셋 역할을 한다.
for문은 카드의 총 개수까지만큼 도는데,
i 는 cards 배열의 인덱스 역할을 하기 때문에 CARD_NUM보다 1작을 때까지만 반복하게 하였다.
(왜냐 인덱스는 0부터 시작하니까안~)
인덱스가 10 미만일경우, 광을 넣어줘야해서
if문을 이용하여 1,3,8 조건에 맞추어 false, true를 인자로 주었다.
그리고 j를 1씩 증가시켜서 10이 도달하였을 때(i가 10이상일 때)
j대신 newJ를 매개변수에 대입해서 다시 1부터 10까지 대입할 수 있도록 하였다.
왜케 설명을 못하지 ....
어쨌든 끝
이어지는 다음 포스팅 보러가기
'코딩 이야기 > Java' 카테고리의 다른 글
[JAVA] 쓰레드(Thread) : 생성 (0) | 2020.12.09 |
---|---|
[JAVA] 스레드(Thread) - 프로세스와 멀티 태스킹 (0) | 2020.12.09 |
[JAVA] 클래스 Class (0) | 2020.12.09 |
[JAVA의 정석] 자바의 정석 7.객체지향 프로그래밍 [7-2] (0) | 2020.12.09 |