로또를 구매하는 프로그램 작성하기
사용자는 로또를 구매할 때 구매할 금액을 입력하고
입력한 금액에 맞게 로또번호를 출력한다.
(단, 로또 한장의 금액은 1000원이고 거스름돈도 계산하여
출력한다.)
==========================
Lotto 프로그램
--------------------------
1. Lotto 구입
2. 프로그램 종료
==========================
메뉴선택 : 1 <-- 입력
Lotto 구입 시작
(1000원에 로또번호 하나입니다.)
금액 입력 : 2500 <-- 입력
행운의 로또번호는 아래와 같습니다.
로또번호1 : 2,3,4,5,6,7
로또번호2 : 20,21,22,23,24,25
받은 금액은 2500원이고 거스름돈은 500원입니다.
==========================
Lotto 프로그램
--------------------------
1. Lotto 구입
2. 프로그램 종료
==========================
메뉴선택 : 2 <-- 입력
감사합니다
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
public class Homework02_Lotto {
public static void main(String[] args) {
System.out.println();
while (true) {
printMain();
Scanner sc = new Scanner(System.in);
int select = sc.nextInt();
if (select == 1) {
System.out.println("----------Lotto 구입 시작----------");
lottoBuy();
}
if (select == 2) {
System.out.println("===============================");
System.out.println();
System.out.println(" 감사합니다.");
System.out.println();
System.out.println("===============================");
break;
}
}
}
public static void lottoBuy() {
System.out.println(" (1000원에 로또번호 하나입니다.)");
while (true) {
Scanner sc = new Scanner(System.in);
System.out.print("금액 입력: ");
int user = sc.nextInt(); // 유저가 낼 돈
int lotto = user / 1000; // 로또 갯수
int change = user % 1000; // 거스름돈
if (user < 1000) {
System.out.println("1000원 이상 입력해주세요.");
}
else {
System.out.println("======행운의 로또번호는 아래와 같습니다======");
// 로또번호 45까지 랜덤으로 돌린 후 넣기
// 로또 갯수만큼 6개씩 번호를 뽑는 것을 반복하도록 해줍니다.
for (int i = 0; i < lotto; i++) {
Set<Integer> intRnd = new HashSet<>();
while (intRnd.size() < 6) {
int num = (int) (Math.random() * 45 + 1);
intRnd.add(num);
}
List<Integer> lottoList = new ArrayList<>(intRnd);
//담아서 정렬해주기
Collections.sort(lottoList);
//장수만큼 번호 반복해서 출력
System.out.println("로또번호" + (i + 1) + ": " + lottoList);
}
System.out.println();
System.out.println("받은 금액은 " + user + "원이고 거스름돈은 " + change + "원 입니다.");
System.out.println();
break;
}
}
}
public static void printMain() {
System.out.println("===============================");
System.out.println();
System.out.println(" Lotto 프로그램");
System.out.println();
System.out.println("-------------------------------");
System.out.println(" 1. Lotto 구입");
System.out.println();
System.out.println(" 2. 프로그램 종료");
System.out.println("===============================");
System.out.print("메뉴선택: ");
}
}
'중급과정 > HighJava' 카테고리의 다른 글
[Java] 행성의 면적 구하기 (Enum) (0) | 2023.11.30 |
---|---|
[Java] 호텔 운영 프로그램 예제 (Map) (0) | 2023.11.30 |
[Java] 학생 리스트 정렬 (List, Comparable, Comparator) (0) | 2023.11.30 |
[Java] Thread(스레드)를 이용한 알파벳 대문자 출력과 출력순대로 순위 매기는 프로그램 작성예제 (0) | 2023.11.29 |
[Java] Thread(스레드)를 이용한 가위바위보 예제 (1) | 2023.11.29 |
로또를 구매하는 프로그램 작성하기
사용자는 로또를 구매할 때 구매할 금액을 입력하고
입력한 금액에 맞게 로또번호를 출력한다.
(단, 로또 한장의 금액은 1000원이고 거스름돈도 계산하여
출력한다.)
==========================
Lotto 프로그램
--------------------------
1. Lotto 구입
2. 프로그램 종료
==========================
메뉴선택 : 1 <-- 입력
Lotto 구입 시작
(1000원에 로또번호 하나입니다.)
금액 입력 : 2500 <-- 입력
행운의 로또번호는 아래와 같습니다.
로또번호1 : 2,3,4,5,6,7
로또번호2 : 20,21,22,23,24,25
받은 금액은 2500원이고 거스름돈은 500원입니다.
==========================
Lotto 프로그램
--------------------------
1. Lotto 구입
2. 프로그램 종료
==========================
메뉴선택 : 2 <-- 입력
감사합니다
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;
public class Homework02_Lotto {
public static void main(String[] args) {
System.out.println();
while (true) {
printMain();
Scanner sc = new Scanner(System.in);
int select = sc.nextInt();
if (select == 1) {
System.out.println("----------Lotto 구입 시작----------");
lottoBuy();
}
if (select == 2) {
System.out.println("===============================");
System.out.println();
System.out.println(" 감사합니다.");
System.out.println();
System.out.println("===============================");
break;
}
}
}
public static void lottoBuy() {
System.out.println(" (1000원에 로또번호 하나입니다.)");
while (true) {
Scanner sc = new Scanner(System.in);
System.out.print("금액 입력: ");
int user = sc.nextInt(); // 유저가 낼 돈
int lotto = user / 1000; // 로또 갯수
int change = user % 1000; // 거스름돈
if (user < 1000) {
System.out.println("1000원 이상 입력해주세요.");
}
else {
System.out.println("======행운의 로또번호는 아래와 같습니다======");
// 로또번호 45까지 랜덤으로 돌린 후 넣기
// 로또 갯수만큼 6개씩 번호를 뽑는 것을 반복하도록 해줍니다.
for (int i = 0; i < lotto; i++) {
Set<Integer> intRnd = new HashSet<>();
while (intRnd.size() < 6) {
int num = (int) (Math.random() * 45 + 1);
intRnd.add(num);
}
List<Integer> lottoList = new ArrayList<>(intRnd);
//담아서 정렬해주기
Collections.sort(lottoList);
//장수만큼 번호 반복해서 출력
System.out.println("로또번호" + (i + 1) + ": " + lottoList);
}
System.out.println();
System.out.println("받은 금액은 " + user + "원이고 거스름돈은 " + change + "원 입니다.");
System.out.println();
break;
}
}
}
public static void printMain() {
System.out.println("===============================");
System.out.println();
System.out.println(" Lotto 프로그램");
System.out.println();
System.out.println("-------------------------------");
System.out.println(" 1. Lotto 구입");
System.out.println();
System.out.println(" 2. 프로그램 종료");
System.out.println("===============================");
System.out.print("메뉴선택: ");
}
}
'중급과정 > HighJava' 카테고리의 다른 글
[Java] 행성의 면적 구하기 (Enum) (0) | 2023.11.30 |
---|---|
[Java] 호텔 운영 프로그램 예제 (Map) (0) | 2023.11.30 |
[Java] 학생 리스트 정렬 (List, Comparable, Comparator) (0) | 2023.11.30 |
[Java] Thread(스레드)를 이용한 알파벳 대문자 출력과 출력순대로 순위 매기는 프로그램 작성예제 (0) | 2023.11.29 |
[Java] Thread(스레드)를 이용한 가위바위보 예제 (1) | 2023.11.29 |