是一個簡單的抽獎系統,經過輸入的選項執行相關的操做,java
import java.lang.invoke.SwitchPoint; import java.util.Arrays; import java.util.Scanner; //抽獎系統 public class Test01 { static String userName = ""; //用戶名 static String password = ""; //密碼 static int i = 0; //登陸次數 static boolean islogin = false; //登陸狀態,默認是沒有登錄的 public static void main(String[] args) { while (true) { System.out.println("*****歡迎進入抽獎系統*****"); System.out.println(" 1,註冊 \n 2,登陸 \n 3,參加抽獎"); System.out.println("********************"); System.out.println("請選擇:"); Scanner sc = new Scanner(System.in); int num = sc.nextInt(); //根據用戶輸入,進行相關的操做 doSome(num); System.out.println("是否退出:(exit)"); String string = sc.next(); if ("exit".equals(string)) { return; } } } //根據用戶輸入,進行相關的操做 static void doSome(int num) { if (num > 3 || num < 1) { //只能輸入1,2,3 System.out.println("輸入錯誤,請從新輸入"); return; } switch (num) { case 1 : { // 註冊 System.out.println("抽獎 > 註冊"); //1,判斷是否已經註冊過了,若是是,就不須要在註冊 boolean regist = isRegist(); if (regist) { System.out.println("已經註冊過了,請執行其餘操做"); return; }else { //2,用兩個變量來保存一下用戶名和密碼 Scanner sc = new Scanner(System.in); System.out.println("請輸入用戶名"); userName = sc.next(); System.out.println("請輸入密碼"); password = sc.next(); //3,註冊成功,用戶名... System.out.println("註冊成功,用戶名:" + userName); } break; } case 2 : { // 登陸 System.out.println("抽獎 > 登陸"); //1,判斷是否註冊過,若是是,就能夠登陸,不然返回註冊 if (islogin) { System.out.println("已登陸"); break; } boolean regist = isRegist(); if (regist) { //註冊過 login(); }else { // 沒有註冊過 System.out.println("請先註冊..."); } break; } default: { // 抽獎 System.out.println("抽獎 > 抽獎"); //判斷是否登陸狀態 if (islogin == false) { System.out.println("未登陸,請先登陸"); return; } //若是是登陸狀態,抽獎,不然,返回登陸 //代碼到這裏,代表已經登陸成功了 System.out.println("請輸入您的幸運編號(4位):"); Scanner scanner = new Scanner(System.in); int luckNum = scanner.nextInt(); //獲取隨機出來的隨機數字 int[] arr = getArr(); for (int i = 0; i < arr.length; i++) { if (luckNum == arr[i]) { System.out.println("恭喜你中獎啦"); return; } } System.out.println("努努力,恭喜下次中獎"); //抽獎 1,輸入4位幸運數字 2,隨機一個數組 //若是輸入的數字在數組中,就中獎了,不然謝謝惠顧 break; } } } //判斷是否註冊過 true是註冊過 false是未註冊過 static boolean isRegist () { //字符串寫在前面,null沒有equals方法 if ("".equals(userName) || userName == null || "".equals(password) || password == null) { return false; } return true; } //判斷用戶名和密碼與存儲的是否相等. static boolean login(String name,String passwd) { if (Test01.userName.equals(name) && (Test01.password.equals(passwd))) { //每次登陸成功之後歸零 i= 0; return true; }else { return false; } } //登陸 static void login () { Scanner sc = new Scanner(System.in); System.out.println("請輸入用戶名"); String userName = sc.next(); System.out.println("請輸入密碼"); String password = sc.next(); //判斷用戶名和密碼與存儲的是否相等 boolean login = login(userName, password); if (login) { //登陸成功 System.out.println("登陸成功"); Test01.islogin = true; //把當前的狀態標記成登陸成功 }else { //登陸失敗 System.out.println("請從新登陸"); //輸入三次之後退出 if (i >= 3) { System.out.println("登陸次數過多,明天再試吧"); System.exit(-1); //虛擬機終止 return; } i++; //調用本身自己 login(); } } //抽獎環節隨機數組的函數 static int[] getArr() { //初始化數組 int[] numArr = new int[5]; //隨機1000-9999數字放到數組中 //調用test02的rand方法 int index = 0; boolean tag = false; //若是數組的下標爲4的元素是0,說明數組沒有裝滿,能夠繼續執行 while (numArr[4] == 0) { tag = false; int num = Test02.rand(1000, 9999); //循環判斷,每次生成的隨機數不與以前放進數組中的數重複 for (int i = 0; i < index; i++) { //若是重複,tag改成true,而且跳出本次循環, if (num == numArr[i]) { tag = true; break; } } //若是tag = true,返回繼續執行,不走下邊的代碼 if (tag) { continue; } //若是不爲true,則把隨機數放到數組中. numArr[index] = num; index++; } return numArr; } }