JAVA/JAVA1
[java1] #11 - temp(순서 바꾸기/로또 추첨)
yoonddo
2022. 10. 22. 18:28
# temp (순서바꾸기)
int temp = a;
a = b;
b = temp;
1. temp 라는 빈 공간에 a를 넣어준다. --> int temp = a;
2. a가 빠져나온 곳애 b를 넣어준다. --> a = b;
3. b가 빠져나왔기 때문에 빈공간이 되어버린 그곳이 temp이다. --> b = temp;
컴파일 결과 전 : a = 20, b = 10 후 : a = 10, b = 20 |
배열의 순서 바꾸기
// 3개의 배열 순서 바꾸기
int []arr = {5, 7, 2};
for(int n:arr) //n에 arr을 담는다.
{
System.out.println(n);
}
System.out.println();
System.out.println("0번과 2번을 교환 후 출력");
int temp1 = arr[0];
arr[0] = arr[2];
arr[2] = temp1;
//순서 바꿔서 출력
for(int n1:arr)
{
System.out.println(n1 + " ");
}
로또번호 추첨하기
import java.util.Random;
public class LottoTest {
public static void main(String[] args) {
// 추첨기를 만든다.
int[] lotto = new int[45];
// 추첨기에 공을 넣는다.
for (int i = 0; i < lotto.length; i++) {
lotto[i] = i + 1;
}
// 섞기전 상태를 출력한다.
view(lotto);
System.out.println("\n=========== 섞기전 ===========");
// 섞는다.
// lotto[0]와 lotto[1] ~ lotto[44] 중에서 랜덤한 위치의 값을 선택해서 두 기억장소의 값을 교환한다.
Random random = new Random();
for (int i = 0; i < 1000000; i++) {
int r = random.nextInt(44) + 1;
int temp = lotto[0];
lotto[0] = lotto[r];
lotto[r] = temp;
}
// 섞기후 상태를 출력한다.
view(lotto);
System.out.println("\n=========== 섞은후 ===========");
// lotto 배열의 0 ~ 5 번째 인덱스 값이 1등 번호 6번째 인덱스 값은 보너스 번호
System.out.print("1등 번호: ");
for (int i = 0; i < 6; i++) {
if (i > 0) {
System.out.print(", ");
}
System.out.printf("%02d", lotto[i]);
// Thread 클래스의 sleep() 메소드를 이용해서 프로그램을 일정 시간동안 멈춘다.
try {
Thread.sleep(2000); // 시간은 밀리(1/1000)초 단위로 지정한다. => 1초 ==1000
} catch (InterruptedException e) {
e.printStackTrace(); //가장 자세한 예외정보를 제공한다.
}
}
System.out.printf(" 보너스: %02d\n", lotto[6]);
}
private static void view(int[] lotto) {
for (int i = 0; i < lotto.length; i++) {
System.out.printf("%2d ", lotto[i]);
if ((i + 1) % 10 == 0) {
System.out.println(); //로또번호 한줄 바꾸기 => 섞기전과 섞기 후 모두 같은 출력값이 필요하기때문에 메소드를 따로 생성한다.
}
}
}
}
결과