首頁 > 軟體

Java幾個範例帶你進階昇華上篇

2022-03-29 13:01:35

前言

本期Java基礎案例: 水仙花、猜數位、減肥計劃、不死神兔、評委打分

以下是本篇文章正文內容,僅供參考

一、案例1:水仙花

題目: 在控制檯輸出所有的水仙花數

什麼是水仙花數?

  • 水仙花是一個三位數;
  • 水仙花數的個位、十位、百位的數位立方和等於原數。

分析:

  • 使用迴圈遍歷所有的三位數(100開始到999結束);
  • 計算之前獲取三位數中的每個位上的值;
  • 將三位數中的每個數值取出來,計算立方和並與原數值比較;
  • 輸出水仙花數。

實踐:

程式碼如下(範例):

public class Demo1 {
    public static void main(String[] args) {
    //不愛生薑不吃醋
        //使用迴圈遍歷所有的三位數(100開始到999結束);

        for(int i=100;i<1000;i++){
            // 計算之前獲取三位數中的每個位上的值;
            int ge=i%10;
            int shi=i/10%10;
            int bai=i/100%10;

            // 將三位數中的每個數值取出來,計算立方和並與原數值比較;
            if(ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
                // 輸出水仙花數。
                System.out.print(i+" ");
            }
        }
    }
}

二、案例2:猜數位

題目:

程式自動生成一個1-100之間的數位,實用程式實現猜出這個數位是多少? 當猜錯的時候根據不同情況給出相應的提示:

  • 猜的數位比真實數位大,提示猜的資料大了;
  • 猜的數位比真實數位小,提示猜的數小了;
  • 猜的數位等於真實數位,提示恭喜猜中了。

分析:

  • 使用亂數生成該數位(範圍0-100);
  • 使用迴圈反覆進行猜數位過程;
  • 使用鍵盤錄入實現輸入的猜測數位;
  • 比較猜測的數位與生成的數位;
  • 猜中後結束迴圈;

實踐:

程式碼如下(範例):

public class Demo2 {
    public static void main(String[] args) {
    //不愛生薑不吃醋
        // 使用亂數生成該數位(範圍0-100);
        //需要導包import java.util.Random;
        Random r=new Random();
        int num=r.nextInt(100)+1;

        // 使用迴圈反覆進行猜數位過程;
        while(true) {
            // 使用鍵盤錄入實現輸入的猜測數位;
            Scanner sc = new Scanner(System.in);
            System.out.println("請輸入你猜的數位:");
            int s = sc.nextInt();

            // 比較猜測的數位與生成的數位;
            if(s>num){
                System.out.println("猜的數位大了!");
            }else if(s<num){
                System.out.println("猜的數位小了!");
            }else{
                System.out.println("恭喜你,猜中了!");

                // 猜中後結束迴圈;
                break;
            }
        }
    }
}

三、案例3:減肥計劃

題目:

輸入星期數,顯示今天的減肥計劃

分析:

  • 鍵盤錄入一個星期數,用一個變數接收;
  • 使用switch語句進行判斷;
  • 輸出對應的語句。

實踐:

程式碼如下(範例):

public class Demo3 {
    public static void main(String[] args) {
    //不愛生薑不吃醋
        // 鍵盤錄入一個星期數,用一個變數接收;
        Scanner sc=new Scanner(System.in);
        System.out.println("請輸入星期數:");
        int week=sc.nextInt();

        // 使用switch語句進行判斷;
        switch(week){
            case 1:
                System.out.println("今天的計劃是:跑步!");
                break;
            case 2:
                System.out.println("今天的計劃是:爬山!");
                break;
            case 3:
                System.out.println("今天的計劃是:游泳!");
                break;
            case 4:
                System.out.println("今天的計劃是:騎自行車!");
                break;
            case 5:
                System.out.println("今天的計劃是:拳擊!");
                break;
            case 6:
                System.out.println("今天的計劃是:健美操!");
                break;
            case 7:
                System.out.println("今天的計劃是:休息!");
                break;
            default:
                System.out.println("輸入的星期數有誤!");
                break;
        }
    }
}

四、案例4:不死神兔

題目:

有一對兔子,從出生後第三個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問第十二個月的兔子對數為多少?

分析:

  • 定義一個陣列並進行動態初始化,長度為20;
  • 第一個月和第二個月兔子對數都是已知的,都為1;
  • 用迴圈實現計算每個月的兔子對數;
  • 輸出陣列中最後一個元素的值(就是第二十個月兔子的對數)。

實踐:

程式碼如下(範例):

public class Demo4 {
    public static void main(String[] args) {
    //不愛生薑不吃醋
        // 定義一個陣列並進行動態初始化,長度為20;
        int[] arr=new int[20];

        // 第一個月和第二個月兔子對數都是已知的,都為1;
        arr[0]=arr[1]=1;

        // 用迴圈實現計算每個月的兔子對數;
        for(int i=2;i<arr.length;i++){
            arr[i]=arr[i-2]+arr[i-1];
        }

        // 輸出陣列中最後一個元素的值(就是第二十個月兔子的對數)。
        System.out.println("第二十個月兔子的對數為:"+arr[19]);
    }
}

五、案例5:評委打分

題目: 在比賽中,有6個評委為參賽的選手打分,分數為0-100的整數分,選手的最後得分為:去掉一個最高分和一個最低分後的4個評委打分的平均值(不考慮小數部分)。

分析:

  • 定義一個陣列,用動態初始化完成陣列元素的初始化,長度為6;
  • 鍵盤錄入評委分數;
  • 用迴圈改進的方法接受評委的分數;
  • 定義方法實現獲取陣列中的最高分(呼叫方法);
  • 定義方法實現獲取陣列中的最低分(呼叫方法);
  • 定義方法實現陣列中所偶有元素的和(呼叫方法);
  • 按照計算規則計算得到平均分;
  • 輸出平均分。

實踐:

定義方法實現獲取陣列中的最高分(最後要呼叫方法);

    public static int getMax(int[] arr){
        int x=arr[0];
        for(int a=1;a<arr.length;a++){
            if(x < arr[a]){
                x=arr[a];
            }
        }
        return x;
    }

定義方法實現獲取陣列中的最低分(最後要呼叫方法);

    public static int getMin(int[] arr){
        int b=arr[0];
        for(int y=1;y<arr.length;y++){
            if(b > arr[y]){
                b=arr[y];
            }
        }
        return b;
    }

定義方法實現陣列中所偶有元素的和(最後要呼叫方法);

   public static int getSum(int[] arr){
        int sum=0;
        for(int c=0;c<arr.length;c++){
            sum+=arr[c];
        }
        return sum;
    }

主方法編寫。

    public static void main(String[] args) {
    //不愛生薑不吃醋
        // 定義一個陣列,用動態初始化完成陣列元素的初始化,長度為6;
        int[] arr=new int[5];

        //  鍵盤錄入評委分數
        Scanner sc=new Scanner(System.in);

        // 用迴圈改進的方法接受評委的分數;
        for(int i=0;i<arr.length;i++){
            arr[i]=sc.nextInt();
        }

        // 按照計算規則計算得到平均分;
        int avg=(getSum(arr)-getMax(arr)-getMin(arr))/(arr.length-2);
        // 輸出平均分。
        System.out.println("最終得分為:"+ avg);
    }

總結

本文五個Java案例分別用到了迴圈遍歷、隨機生成數、鍵盤錄入、switch語句和定義方法和呼叫方法。

到此這篇關於Java幾個範例帶你進階昇華上篇的文章就介紹到這了,更多相關Java 範例內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com