이번에 풀어볼 문제는..
int data [] = {1,2,3,4,5,6};
안에서 각각 숫자를 뽑아내서 0이될때까지 구해서 출력하는거다(!)
그러니까.. 이렇게!
{1,2,3,4,5,6};-> 1, 2+1, 3+2+1, 4+3+2+1,5+4+3+2+1+,6+5+4+3+2+1 값으로 뽑아내기
코드 먼저 고고!
int data[]= {1,2,3,4,5,6}; //먼저 해당 값을 배열해제하여 int로 변환
plusbox pb=null; //(1)plusbox 복사.. (2)번에서 사용하기 위해 null;로 선언함
for(int i=0;i<data.length;i++) {
pb = new plusbox(data[i]); //(2)
pb.start(); //Thread 에서 사용되는 run/start();
}
}
}
class plusbox extends Thread{
int number = 0; //사실 이건 큰 의미없고 Thread를 사용하기 위해 넣은 것
public plusbox(int no) { //main배열해제 해서 받은 값 (1,2,3,4,5,6)
this.number = no;
}
@Override
public void run() {
int sum=0;
for(int z=this.number;z>0;z--) {//각 숫자가 0이 될때까지 감소하는 반복문
sum+=z; //모두 sum에 저장
}
System.out.println(sum);
}
}
결과값
결과값이 왜 이렇게 무작위로 출력되었을까요?
이유는..thread를 사용했기 때문입니다.
thread는 출력 때마다 순차적으로 실행되지 않고 무작위로 (동시라고 생각하면 이해하기 쉬움) 실행되어서
이렇게 출력되는거고요. 만약 오름차순이나 내림차순으로 정렬하고 싶다면....
배열로 받아서 정렬하면 됩니다!
728x90
'JAVA > 객체지향' 카테고리의 다른 글
[java/abstract] 추상의, 미완성의 abstract 클래스 (0) | 2022.07.03 |
---|---|
[java/interface] 인터페이스란? (0) | 2022.07.02 |
[java/상속] 상속이란? (0) | 2022.07.02 |
[java/Thread] 쓰레드와 클래스의 차이 (0) | 2022.07.01 |
댓글