第七章 循環結構綜合練習


一、本章任務

    完成青鳥迷你游戲平台的開發

二、目標

  •     會定義變量

  •     會使用數據類型和運算符

  •     會使用選擇結構

  •     會使用循環結構

三、內容

1 上機練習一

需求:

    用戶進入游戲平台后,可以選擇遠的游戲,程序運行結果如下    

        

思路

  • 獲得用戶的輸入:Scan

  • 輸出:System.out.println()

  • 選擇結構:if 、switch

實現

  • 第一種方法

 
 
 
         
  1. public class SelectGame{

  2. public static void main(String[] args) {

  3. System.out.println("歡迎進入青鳥游迷你戲平台\n");

  4. System.out.println("請選擇您喜愛的游戲:\n");

  5. System.out.println("*******************************");

  6. System.out.println("\t1.斗地主");

  7. System.out.println("\t2.斗牛");

  8. System.out.println("\t3.泡泡龍");

  9. System.out.println("\t4.連連看");

  10. System.out.println("*******************************\n");

  11. int choice; //用戶選擇

  12. boolean isRight; //輸入是否正確

  13. System.out.print("請選擇,輸入數字:");

  14. Scanner input = new Scanner(System.in);

  15. do{

  16. isRight = true;

  17. choice = input.nextInt();

  18. switch (choice) {

  19. case 1:

  20. System.out.println("您已進入斗地主房間!");

  21. break;

  22. case 2:

  23. System.out.println("您已進入斗牛房間!");

  24. break;

  25. case 3:

  26. System.out.println("您已進入泡泡龍房間!");

  27. break;

  28. case 4:

  29. System.out.println("您已進入連連看房間!");

  30. break;

  31. default:

  32. System.out.print("輸入錯誤,請重新輸入數字:");

  33. isRight = false;

  34. break;

  35. }

  36. }while(!isRight);

  37. }

  38. }

  • 第二種方法

 
 
 
         
  1. public class SelectGame2 {

  2. public static void main(String[] args) {

  3. System.out.println("歡迎進入青鳥游迷你戲平台\n");

  4. System.out.println("請選擇您喜愛的游戲\n");

  5. System.out.println("*******************************");

  6. System.out.println("1.斗地主");

  7. System.out.println("2.斗牛");

  8. System.out.println("3.泡泡龍");

  9. System.out.println("4.連連看");

  10. System.out.println("*******************************\n");

  11. System.out.print("請選擇,輸入數字:");

  12. Scanner input = new Scanner(System.in);

  13. int selectInt = input.nextInt();

  14. while (selectInt>=5||selectInt<=0) {

  15. System.out.print("選擇錯誤,請重新選擇");

  16. selectInt = input.nextInt();

  17. }

  18. switch (selectInt) {

  19. case 1:

  20. System.out.println("你已進入斗地主房間!");

  21. break;

  22. case 2:

  23. System.out.println("你已進入斗牛房間!");

  24. break;

  25. case 3:

  26. System.out.println("你已進入泡泡龍房間!");

  27. break;

  28. case 4:

  29. System.out.println("你已進入連連看房間!");

  30. break;

  31. }

  32. }

  33. }

2 上機練習二:玩游戲並晉級

需求    

  • 用戶玩游戲,每次玩5局

  • 不足5局則不能晉級。

  • 在5局游戲中,如果80%達到80分以上,為一級,如果60%達到80分以上為二級,否則不能晉級    

                            

 

思路

  • 使用循環實現玩5局游戲,使用break語句實現中途退出游戲

  • 使用多重if,根據游戲得分判斷是否晉級

實現

 
 
 
         
  1. public class RiseGame {

  2. public static void main(String[] args) {

  3. System.out.println("青鳥迷你游戲平台>游戲晉級\n");

  4. Scanner input = new Scanner(System.in);

  5. int n = 1;

  6. int count=0;

  7. while (n<=5) {

  8. System.out.print("您正在玩第"+n+"局,成績為:");

  9. int scroe = input.nextInt();

  10. if(scroe>80){

  11. count++;

  12. }

  13. if(n!=5){

  14. System.out.println("繼續玩下一局嗎?(yes/no)");

  15. String answer = input.next();

  16. if(answer.equals("no")){

  17. System.out.println("你已經退出游戲");

  18. break;

  19. }

  20. System.out.println("你進入一下局");

  21. }

  22. n++;

  23. }

  24. System.out.println("n的值:"+n);

  25. if(n>5){

  26. if(n>=4){

  27. System.out.println("\n恭喜,通過一級!");

  28. }else if(n>=3&&n<4){

  29. System.out.println("\n恭喜,通過二級!");

  30. }else {

  31. System.out.println("\n對不起,你未能晉級!");

  32. }

  33. }

  34. }

  35. }

3 上機練習三:玩游戲並支付游戲幣

需求:

  • 根據游戲類型和游戲時長計算應支付的游戲幣

  • 游戲類型分為兩大類:牌類和休閑競技類

  • 游戲的收費標准

    • 牌類:10元/小時

    • 休閑競技類:20元/小時

  • 游戲的收費規則:游戲時間超過10小時,可以打5折10小時及以下,打8折

實現

 
 
 
         
  1. public class PayGame {

  2. public static void main(String[] args) {

  3. System.out.println("青鳥迷你游戲平台 > 游戲幣支付\n");

  4. System.out.println("請選擇您玩的游戲類型:");

  5. System.out.println("\t1.牌類");

  6. System.out.println("\t2.休閑競技類");

  7. Scanner input = new Scanner(System.in);

  8. int choice = input.nextInt();

  9. System.out.println("請您輸入游戲時長:");

  10. int time = input.nextInt();  //游戲時間

  11. int qm = 0;  //游戲幣

  12. switch (choice) {

  13. case 1:

  14. if (time > 10) {

  15. System.out.println("您玩的是牌類游戲,時長是:" + time + "小時,可以享受5折優惠");

  16. qm = (int) (10 * time * 0.5);

  17. System.out.println("您需要支付" + qm + "個游戲幣");

  18. } else {

  19. System.out.println("您玩的是牌類游戲,時長是:" + time + "小時,可以享受8折優惠");

  20. qm = (int) (10 * time * 0.8);

  21. System.out.println("您需要支付" + qm + "個游戲幣");

  22. }

  23. break;

  24. case 2:

  25. if (time > 10) {

  26. System.out.println("您玩的是休閑競技類游戲,時長是:" + time + "小時,可以享受5折優惠");

  27. qm = (int) (20 * time * 0.5);

  28. System.out.println("您需要支付" + qm + "個游戲幣");

  29. } else {

  30. System.out.println("您玩的是休閑競技類游戲,時長是:" + time + "小時,可以享受8折優惠");

  31. qm = (int) (20 * time * 0.8);

  32. System.out.println("您需要支付" + qm + "個游戲幣");

  33. }

  34. break;

  35. default:

  36. System.out.print("無效選擇");

  37. }

  38. }

  39. }

4 上機練習四:統計游戲點擊率

需求    

  • 錄入游戲的點擊率,統計點擊率超過100的游戲所占的比例

思路:

  • 使用if結構、continue語句統計點擊率100以上的游戲數量

實現

 
 
 
         
  1. public class GameDot {

  2. public static void main(String[] args) {

  3. int score; // 點擊率

  4.        int total; // 游戲總數量

  5.        int num = 0; //點擊率大於100的游戲數量

  6.        Scanner input = new Scanner(System.in);

  7.        System.out.println("青鳥迷你游戲平台 > 游戲點擊率\n");

  8.        for (int i = 0; i < 4; i++) {

  9.            System.out.print("請輸入第" + (i + 1) + "個游戲的點擊率: ");

  10.            score = input.nextInt();

  11.            if (score <= 100) {

  12.                continue;

  13.            }

  14.            num++;

  15.        }        

  16.        System.out.println("點擊率大於100的游戲數是: " + num);

  17.        double rate =  (double)num / 4 * 100;

  18.        System.out.println("點擊率大於100的游戲所占的比例為:" + rate + "%");        

  19. }

  20. }

4 上機練習五:添加用戶信息

需求

  • 為了維護用戶信息,需要將其信息錄入系統

    • 用戶的信息包括:用戶編號、年齡、積分

    • 要求年齡10歲以上

    • 若年齡合法,則顯示錄入的信息,否則顯示錄入失敗

        

實現

  
  
  
          
  1. public class AddUser {
  2. public static void main(String[] args) {
  3. System.out.println("青鳥迷你游戲平台 > 添加用戶信息\n");
  4. int custNo = 0;    //用戶編號
  5. int age; //年齡
  6. int points = 0; //積分
  7. System.out.println("請輸入要錄入用戶的數量:");
  8. Scanner input = new Scanner(System.in);
  9. int count=input.nextInt();
  10. //循環錄入用戶信息
  11. for(int i=0;i<count;i++){
  12. System.out.print("請輸入用戶編號(<4位整數>):");
  13. custNo = input.nextInt();
  14. System.out.print("請輸入用戶年齡:");
  15. age = input.nextInt();
  16. if(age<10 || age>100){ //年齡不合適則跳出
  17. System.out.println("很抱歉,您的年齡不適宜玩游戲");
  18. System.out.println("錄入信息失敗\n");
  19. continue;
  20. }
  21. System.out.print("請輸入會員積分:");
  22. points = input.nextInt();
  23. System.out.println("您錄入的會員信息是:");
  24. System.out.println("用戶編號:"+custNo+ "\t年齡:" +age+ "\t積分:" +points+ "\n");
  25. }
  26. }
  27. }

四、本章總結

  • 分支結構、循環結構、跳轉語句的綜合運用 

五、作業

1 編寫JAVA程序,實現接收用戶輸入的正整數,輸出該數的階乘

  • 要求:限制輸入的數據在1-10之間,無效數據進行提示,結束程序

  • 輸出結果如:4!=1*2*3*4=24

  • 實現

  
  
  
          
  1. public class FactDemo {


  2. /**

  3. * @param args
  4. */
  5. public static void main(String[] args) {
  6. //定義變量接收用戶輸入,計算階乘,累計表達式
  7. int number,fact=1;
  8. String msg="";
  9. Scanner input=new Scanner(System.in);
  10. //提醒輸入
  11. System.out.println("請輸入一個10以內的正整數:");
  12. number=input.nextInt();
  13. //驗證有效性
  14. if(number>10 || number<1){
  15. System.out.println("數據無效");
  16. return;
  17. }
  18. System.out.print(number+"!=");
  19. //計算階乘
  20. for(int i=1;i<number;i++){
  21. msg+=i+"*";
  22. fact*=i;
  23. }
  24. //組合結果,並顯示
  25. fact*=number;
  26. msg+=number+"="+fact;
  27. System.out.println(msg);
  28. }
  29. }

2 寫JAVA程序,實現輸出1--100之間所有不能被7整除的數,並求和

  • 要求:每輸出4個數據換行顯示

  • 實現

  
  
  
          
  1. public class NumDemo {
  2. /**
  3. * @param args
  4. */
  5. public static void main(String[] args) {
  6. //定義變量,累計求和,統計個數
  7. int sum=0,count=1;
  8. System.out.println("1-100之間不能被7整除的數據為:");
  9. for(int i=1;i<=100;i++){
  10. //判斷是否能被7整除,如果能被7整除,結束本次循環
  11. if(i%7==0)
  12. continue;
  13. //輸出不能被7整除的數據
  14. System.out.print(i+"\t");
  15. //每4個數換行顯示
  16. if(count%4==0)
  17. System.out.println();
  18. //累計求和,個數增加
  19. sum+=i;
  20. count++;
  21. }
  22. System.out.println();
  23. //輸出累計和
  24. System.out.println("數據之和為:"+sum);
  25. }
  26. }











免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM