비욘드 형님이 새벽까지 알려주셨었는데 제가 하도멍청한지라 또 이상하게 짜놔서요 그


import java.util.HashSet;

public class Lotto {
 public static void main(String[] ar){

  int count = 0;
  int r1,r2,r3,r4,r5;
  r1=r2=r3=r4=r5=0;
  long rsum=0;

  int price = 0;

  System.out.println("=========로또 시뮬레이션=======");

  //로또번호 생성
  HashSet<Integer> hs =  new HashSet<Integer>();


  while(hs.size() <6){
   hs.add((int)(Math.random()*(45-1+1)+1)); 
  }


  int bon = ((int)(Math.random()*(45-1+1)+1));

  for(int i : hs){
   if(i==bon){   //보너스 번호는 당첨번호랑 중복되면 안되니깐
    int bon2 = ((int)(Math.random()*(45-1+1)+1)); //중복이 있으면 bon2변수에 랜덤으로 다시 생성하고
    bon=bon2; //그걸 다시 bon으로 넘겨서 다시 비교 없으면, 진행계속
   }
  }                //여기서 bon2를 다시 bon에 넣어서 중복여부 다시 체크하고 싶은데 그걸 모르겠어요 for문이나 무한루프로 돌리니깐 아래가 오류나서 ㅠㅠ


  //시도번호
  while(true){
   HashSet<Integer> hs2 =  new HashSet<Integer>();
   while(hs2.size() < 6){
    hs2.add((int)(Math.random()*(45-1+1)+1)); 
   }
   rsum++; //시도할떄마다 count니깐 각 등수별로 안해도 상관없었음.
   count =0; //이걸 초기화 안해버리니깐 count++이 계속 누적되서 이상한 결과값이 나왔었음.

   System.out.println("추첨번호: " + hs + "보너스 번호:" + bon);
   System.out.println("시도번호: " + hs2);


   for(int i: hs){ //매칭시키는곳
    for(int i2: hs2){
     if(i==i2){
      count++;
     }
    }
   }
   if(count == 3){
    System.out.println(count + "개 정답! 5등입니다");
    System.out.println("======================");
    r5++;

    price = price+1000;


   }
   else if(count == 4){
    System.out.println(count + "개 정답! 4등입니다");
    System.out.println("======================");
    r4++;

    price = price+1000;

   }
   else if(count == 5){
    System.out.println(count + "개 정답! 3등입니다");
    System.out.println("======================");
    r3++;

    price = price+1000;
   }
   else if(hs2.equals(bon)&&count == 5){  //hs2라는 배열이랑 변수 bon 대체 어떻게 비교하는지 모르겠음. 월요일날 질문
    System.out.println(count + "개  및 보너스 번호까지 정답! 2등입니다");
    System.out.println("======================");
    r2++;

    price = price+1000;
   }                     //그리고 이부분은 5개 다맞는 상황이랑 보너스번호 추가로 1개 맞으면 2등이다 하려하는데 비욘드 형님꼐서 말씀하시길 이미 위에서 5개 다 맞아버리는게 있어서 여기는 코드가 인식도 안한다 하셨는데 그럼 어떻게 처리해야 하는지 모르겠어요 제가 초보라서 이렇게 밖에 코드는 아직 못짜서 추가적으로 새로운걸로는 못해요 ㅠㅜㅜㅠㅠㅠㅠㅠㅠ

   else if(count == 6){
    System.out.println(count + "개 정답! 1등입니다");
    System.out.println("======================");
    r1++;

    price = price+1000;

    System.out.println("5등 당첨횟수: " + r5 + "회");
    System.out.println("4등 당첨횟수: " + r4 + "회");
    System.out.println("3등 당첨횟수: " + r3 + "회");
    System.out.println("2등 당첨횟수: " + r2 + "회");
    System.out.println("1등 당첨횟수: " + r1 + "회");
    System.out.println("1등 당첨까지 시도한 총 횟수: " + rsum + "회");
    System.out.println("1등 당첨까지 꼬라박은 돈: "  + price + "원");
    System.out.println("1등 당첨확률: " + (((r1/(float)rsum)*100)) + "%입니다." );
    break;
   }
  }
 }
}