20230305 [Java] 오늘의 디버깅 + 배운 개념 활용(for문, shuffle)

Daisy🌷·2023년 3월 5일
0

오늘은 딜리버리 타이쿤 프로그램을 만들며 배운 것들을 정리해보고자 한다.

1. 수를 random하게 생성하는 부분을 field로 빼주어야 한다. (디버깅)

  • 아래 코드는 getOrderNumber 메서드를 사용할 때마다 random 정수를 생성하게 한다.
  • random 정수는 한 번만 생성해주고 생성한 수를 getOrderNumber 메서드로 가져다 써야하므로 orderNumber를 멤버 변수로 두어야 한다.

2. 주문이 들어온 개수만큼 String 타입 배열의 요소를 랜덤으로 중복없이 추출하는 방법에 대한 아이디어

관련 개념 : for문, shuffle

내가 하려고 하는 것 : 주문이 들어온 개수만큼 String 타입 배열의 요소를 랜덤으로 추출하려 한다.

  • 우선 주문이 들어온 개수는 1 ~ 5 사이의 랜덤 정수이다.
    Order 클래스에서 랜덤으로 생성된 정수(1 ~ 5 사이의 정수)를 getOrderNumber 메서드를 사용하여 가져온다.
  • String 타입의 배열을 선언하고 초기화해준다.
String[ ] foods = {"햄버거", "피자", "치킨", "커피", "케이크"};

++) 자꾸 햄버거, 피자, 치킨, 커피, 케이크 전부 다 출력돼서 왜 그런지 한참 찾았는데 이렇게 써뒀더라,, 꼼꼼하게 잘보자,,

String[ ] foods = {"햄버거, 피자, 치킨, 커피, 케이크"}
  • 이제 0부터 4까지 i를 1씩 늘리면서 for문을 돌린다.
  • randomIndex라는 정수형 변수를 선언해주자.
int randomIndex = random.nextInt(foods.length);
  • String temp라는 비어 있는 변수에 foods[i]를 넣어주고
    foods[i]에 다시 foods[randomIndex]를 넣어주고
    마지막으로 foods[randomIndex]에 다시 temp를 넣어준다.

이렇게 하면 배열 안에 있는 요소들(햄버거, 피자, 치킨, 커피, 케이크)이 완벽히 shuffle이 된다.

자 이제 이 shuffle된 배열의 요소들을 주문의 개수에 맞게 출력해주면 된다.

  • 0부터 (주문의 개수 - 1)까지 i를 1씩 늘리면서 for문을 돌려준다.
  • 주문의 개수가 3개라면 shffle된 요소들 중 맨 앞 3개가 추출될 것이고, 주문의 개수가 2개라면 shuffle된 요소들 중 맨 앞 2개가 추출될 것이다.

주문이 들어온 개수만큼 String 타입 배열의 요소를 랜덤으로 추출하기 성공이다!

profile
티스토리로 블로그를 이전했습니다. 😂 구경 오세요! 👉🏻 https://u-ryu-logs.tistory.com

0개의 댓글