Java3流程控制語句


課堂練習:

 

1√奇偶數值

     編寫java程序,完成以下功能:

      假設有整型變量x,判斷x是否為偶數,若為偶數,則在控制台上打印“輸入的數值是偶數”。

      無論x是否為偶數,最后都要在控制台上輸出x的值

     package com.three;

      

     import java.util.Scanner;

      

     public class three {

     public static void main(String[] args) {

    

             // scanner是一個隨機數,random也可以,但寫法不一樣

             System.out.println("請輸入一個數字:");

             Scanner x=new Scanner(System.in);

             int x1=x.nextInt();

             if (x1%2==0) {

                System.out.println("輸入的數字:"+x1+"是偶數");

             }else {

                System.out.println("輸入的數字:"+x1+"是奇數");

            

         }

     }

     }

 

 

2√整除

     有一個數字為45327,判斷該數字是否能被13整除,是否能被17整除。

     package com.three;

     public class K2 {

         public static void main(String[] args) {

            int x=45327;

            if (x%13==0 && x%17==0) {

                System.out.println("45327是13和17倍數");

            }else {

                System.out.println("45327不是13和17倍數");

            }

         }

     }

      

    

 

 

3√最大值

     有兩個整型變量x,y,請編寫代碼在控制台上輸出x與y中值較大的那個數。

     package com.three;

     public class K3panduan {

     public static void main(String[] args) {

       int x=3;

       int y=5;

       if (x>y) {

     //       判斷如果x>y輸出x,反之輸出y

          System.out.println("x="+x);

       }else {

          System.out.println("y="+y);

       }

     }

     }

 

 

 

 

4√閏年

     判斷2064年是不是閏年。

      閏年判斷規則:

     能被400整除的是閏年

     能被100整除,不能被400整除的不是閏年

     能被4整除,不能被100整除的是閏年

     其他的不是閏年

     package com.three;

      

     public class K4panduanrunnian {

     public static void main(String[] args) {

     int x=2064;

     if (x%400==0 ) {

         System.out.println(x+"是閏年");

     }else if (x%4==0) {

         System.out.println(x+"是閏年");

     }

     else {

         System.out.println(x+"不是閏年");

     }

     }

     }

 

 

 

 

 

5√月份

     如果月份month為1—12的一個月份,輸出該月份的天數;如果數字不符合,輸出“錯誤的月份”。

      1、3、5、7、8、10、12月天數為31

      2月天數為28

      4、6、9、11月天數為30

      使用switch語句完成需求

 

package com.three;

import java.util.Random;

import java.util.Scanner;

 

public class K5suijiyuefentianshu {

public static void main(String[] args) {

    System.out.println("請隨機輸入一個月份:");

    Scanner x=new Scanner(System.in);

    int x1=x.nextInt(); 

    switch (x1) {

    case 1:

       System.out.println(x1+"月為31天");

       break;

    case 2:

       System.out.println(x1+"月為28天");

       break;

    case 3:

       System.out.println(x1+"月為31天");

       break;

    case 4:

       System.out.println(x1+"月為30天");

       break;

    case 5:

       System.out.println(x1+"月為31天");

       break;

    case 6:

       System.out.println(x1+"月為30天");

       break;

    case 7:

       System.out.println(x1+"月為31天");

       break;

    case 8:

       System.out.println(x1+"月為31天");

       break;

    case 9:

       System.out.println(x1+"月為30天");

       break;

    case 10:

       System.out.println(x1+"月為31天");

       break;

    case 11:

       System.out.println(x1+"月為30天");

       break;

    case 12:

       System.out.println(x1+"月為31天");

       break;

   

    default:

       System.out.println("輸入錯誤信息");

       break;

    }

}

}

 

 

     1、編寫程序實現:用戶輸入商品名稱,顯示該商品的價格。

 

 

 

 

6√隨機月份天數

     產生一個12以內的隨機數作為月份,輸出該月份的天數。

      1、3、5、7、8、10、12月天數為31

      2月天數為28

      4、6、9、11月天數為30

       

       

       

***66、隨機天數

      產生一個12以內的隨機月份,和一個30以內的隨機天數,輸出該日是本年的第多少天(不考慮閏年)?【選做題】

 

package com.three;

public class K66suijitianhsu {

public static void main(String[] args) {

    //每月的天數

       //0只是占位

       int[] mons = { 0, 31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30 };   

       //隨機月份    -取模%12 值為0~11,所以要+1

       //Math.random()函數返回一個浮點,為隨機數在范圍[0,1)

       int rmon = (int) (Math.random() * 100 % 12 + 1);

       //隨機天數

       int rday = (int) (Math.random() * 100 % 30 + 1);

       //打印隨機幾月和幾號

       System.out.println(rmon + ":" + rday);

       int day = 0;

       //如果為一月就直                                                                                                                                                                                                                                                                                                                                             接輸出天數

       if (rmon == 1) {

           System.out.println(rday);

       } else {

           //循環加前n-1月的天數

           for (int i = rmon; i > 1; i--) {

              day = day + mons[i - 1];

              }

              //最后加上本月的天數

              day += rday;

              System.out.println(day);

           }

}

}

 

 

 

7√循環1到100的和

     計算1+2+3+…+100的和(提示利用while語句)

     package com.three;

     public class K7xunhuanhe {

     public static void main(String[] args) {

     //  求1到100的和

     //  1定義變量x

     //  2定義求和變量sum

     int x=1;

     int sum=0;

     while (x<=100) {

     //  當x<=100時循環

     //      將x的值賦值給sum之后x進行自增

         sum=sum+x;

         x++;

     }

     System.out.println(sum);

     }

     }

      

8√1到100所有奇數和

     計算從1到100的所有奇數相加(提示利用while語句)

     package com.three;

     public class K8jishuhe {

     public static void main(String[] args) {

     //  定義兩個變量x代表1到100之間的奇數 sum代表搜有技術相加的和

     int x=1;

     int sum = 0;

     //  當x<=100時且x為奇數時,將x值賦值給sum,x進行自增

     while (x<=100) {

         if (x%2!=0) {

             sum=sum+x;

            

         }

         x++;

     }

     System.out.println(sum);

     }

     }

 

9√do while

     計算1+2+3+…+100的和(用do while 循環完成)

     package com.three;

     public class K8jishuhe {

     public static void main(String[] args) {

     //  定義兩個變量x代表1到100之間的奇數 sum代表搜有技術相加的和

     int x=1;

     int sum = 0;

     //  當x<=100時且x為奇數時,將x值賦值給sum,x進行自增

     while (x<=100) {

         if (x%2!=0) {

             sum=sum+x;

         }

         x++;

     }

     System.out.println(sum);

     }

     }

 

10√for

     用for循環改寫從1到100的所有奇數相加的和

     package com.three;

     public class K10for {

     public static void main(String[] args) {

     int sum=0;

     int x=1;

     for(int i=1;i<=100;i++) {

         if (x%2!=0) {

             sum=sum+i;

         }

         i++;

     }

     System.out.println("100以內所有奇數和為:"+sum);

     }

     }

 

11√循環

     循環得到用戶從控制台輸入的5個整數,該整數為用戶購買商品的價格,計算用戶一共需要花費的總金額。

     package com.three;

     import java.util.Scanner;

     public class K11circulation {

     public static void main(String[] args) {

     //  定義一個sum用來累加

     //  定義一個sc代表輸入的數字

     //  定義一個自增的變量j記錄輸入數字個數,從1開始

     int sc=0;

     int sum=0;

     for(int j=1;j<=5;j++) {

         System.out.println("第"+j+"個數字為:");

         sc=new Scanner(System.in).nextInt();

         sum=sum+sc;

     }

     //  答應sum

     System.out.println("總金額為:"+sum);

     }   }

 

 

12√循環

     3、隨機產生一個10以內的正整數,用戶循環輸入三個整數,如果用戶輸入的整數包含隨機數,輸出“猜對了”;反之,輸出“沒猜到”。

      例如:

     隨機數為4,用戶輸入數為:2,3,4。輸出:猜對了

     隨機數為4,用戶輸入數為:1,2,3。輸出:沒猜到

 

int a = new Random().nextInt(10);

        if(a==4||a==5||a==6) {

            System.out.println("恭喜你,猜對了");

        }else {

           System.out.println("抱歉,錯了,再來一次嗎?");

       }

13√循環

     用戶輸入數字,如果是0,退出程序,界面如下:

     public static void main(String[] args) {

     System.out.println("**********跨境電商交易平台**********");

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

     System.out.println("*   1、制造商業資料                                         *");

     System.out.println("*   2、銷售商品資料                                         *");

     System.out.println("*   3、商品類別管理                                         *");

     System.out.println("*   4、商品詳細信息                                        *");

     System.out.println("*   0、退出程序                                         *");

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

     System.out.println("**********跨境電商交易平台**********");

         

     //   方法一:Random()

     //   int a=new Random().nextInt(6);

     //   System.out.println("請輸入一個數字:"+a);

    

     //   方法二:Scanner

     System.out.println("請輸入一個數字:");

     Scanner a1=new Scanner(System.in);

     int a=a1.nextInt();

    

    

     if (a==0) {

          System.out.println("歡迎使用本軟件,再見!");

     }else if (a==1) {

          System.out.println("制造商業資料");

     }else if (a==2) {

          System.out.println("銷售商品資料");

     }else if (a==3) {

          System.out.println("商品類別管理 ");

     }else if (a==4) {

          System.out.println("商品詳細信息 ");

     }else {

          System.out.println("對不起,輸入錯誤! ");

     }

    

     }

 

 

附加題****

 

 

     得到用戶從控制台輸入的五個正整數,該整數為用戶購買商品的價格,如果用戶輸入整數為0或負數,不計入統計,結束輸入后計算用戶一共需要花費的總金額。

 

 

 

 

 

課后作業

1√利潤提成

     企業發放的獎金根據利潤提成。利潤低於或等於10萬元時,獎金可提10%;利潤高於10萬元,低於或等於20萬元時,高於10萬元的部分,可提成7.5%;高於20萬,低於或等於40萬時,高於20萬元的部分,可提成5%;高於40萬,低於或等於60萬時,高於40萬元的部分,可提成3%;高於60萬,低於或等於100萬時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,輸入一個整數變量為當月利潤,求應發放獎金總數?(知識點:條件語句) [必做題]

     int x=new Random().nextInt(2000000);

           int y=new Random().nextInt(); 

           if (x>100000) {

               y=(int) (x*0.1);

           }

           if (x>200000)

           {y=(int) (x*0.1)+(int) ((x-200000)*0.075);

           }

           if (x>200000)

           {y=(int) (x*0.1)+(int) (x*0.075);

           }

           System.out.println(y);

        }

2√成績等級

     輸入一個成績a,使用switch結構求出a的等級。A:90-100,B:80-89,C:70-79,D:60-69,E:0~59(知識點:條件語句switch)[必做題]

 

System.out.println("請輸入成績:");

       Scanner a1 = new Scanner(System.in);

       int a= a1.nextInt();

 

    switch (a/10) {

    case 10:

    case 9:

       System.out.println("A");

       break;

    case 8:

       System.out.println("B");

       break;

    case 7:

       System.out.println("C");

       break;

    case 6:

       System.out.println("D");

       break;

    default:

       System.out.println("E");

       break;

    }

    a1.close();

 

3√奇偶數值

     輸入一個數字,判斷是一個奇數還是偶數(知識點:條件語句) [必做題]

     int a=0;

     System.out.println("請輸入一個數:");

     Scanner a1=new Scanner(System.in);

     a=a1.nextInt();

    

     if (a%2!=0) {

          System.out.println("奇數");

     }else {

          System.out.println("偶數");

     }

4√隨機變量x

     編寫程序, 判斷一個隨機變量x的值,如果是1,輸出x=1,如果是5,輸出x=5,如果是 10,輸出x=10,除了以上幾個值,都輸出x=none。(知識點:條件語句) [必做題]

 

System.out.println("請輸入一個數:");

    Scanner x1=new Scanner(System.in);

    int x=x1.nextInt();

   

    if (x==1 ) {

       System.out.println("x="+x);

    }else if (x==5) {

       System.out.println("x="+x);

    }else if (x==10) {

       System.out.println("x="+x);

    }

   

    else {

       System.out.println("x=none");

    }

   

   

5√隨機整除

     判斷一個隨機整數是否能被5和6同時整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),不能被5或6整除,(打印不能被5或6整除)(知識點:條件語句) [必做題]

 

System.out.println("請輸入一個數:");

    Scanner x1=new Scanner(System.in);

    int x=x1.nextInt();

    if (x%5==0 &&x%6==0) {

       System.out.println("能被5和6整除");

    }else if (x%5!=0 && x%6!=0) {

       System.out.println("不能被5和6整除");

    }else if (x%5==0) {

       System.out.println("能被5整除");

    }else if (x%6==0) {

       System.out.println("能被6整除");

    }

6√閏年

     輸入一個年份,判斷這個年份是否是閏年(知識點:條件、循環語句) [必做題]

     System.out.println("請輸入一個數:");

          Scanner x1 = new Scanner(System.in);

          int x = x1.nextInt();

         

          if (x%400==0) {

             System.out.println("閏年");

          }else if (x%4==0) {

             System.out.println("閏年");

          }

         else {

             System.out.println("平年");

          }

7√成績等級

     輸入一個0~100的分數,如果不是0~100之間,打印分數無效,根據分數等級打印A,B,C,D,E(知識點:條件語句if elseif) [必做題]

     System.out.println("請輸入成績");

     Scanner a1=new Scanner(System.in);

     int a=a1.nextInt();

    

     switch (a/10) {

     case 10:

     case 9:  

         System.out.println("A");

         break;

     case 8:  

         System.out.println("B");

         break;

     case 7:  

         System.out.println("C");

         break;

     case 6:  

         System.out.println("D");

         break;

    

     default:

         System.out.println("E");

         break;

     }

     a1.close();

8√xyz大到小

     輸入三個整數x,y,z,請把這三個數由小到大輸出(知識點:條件語句) [必做題]

 

 

int a = 11;

       int b = 67;

       int c = 9;

       if (a > b) {

           if (c > a) {

              System.out.println(b + "," + a + "," + c);

           } else if (c < b) {

              System.out.println(c + "," + b + "," + a);

           } else {

              System.out.println(b + "," + c + "," + a);

           }

 

           // a<<b時

       } else {

           if (c < a) {

              System.out.println(c + "," + a + "," + b);

           } else if (c > b) {

              System.out.println(a + "," + b + "," + c);

           } else {

              System.out.println(a + "," + c + "," + b);

           }

       }

 

 

9√12345幾位數

     有一個不多於5位的正整數,求它是幾位數,分別打印出每一位數字。(知識點:條件語句) [必做題]

 

public static void main(String[] args) {

       // 有一個不多於5位的正整數,求它是幾位數,分別打印出每一位數字。(知識點:條件語句)

 

       System.out.println("請輸入一個數:");

 

       Scanner x1 = new Scanner(System.in);

       String x = x1.next();

 

       System.out.println("你輸入的數字為為:" + x.length() + "位");

       for (int i = x.length() - 1; i >= 0; i--) {

           System.out.print(x.charAt(i) + " ");

       }

    }

}

 

 

課后作業:[選做題]

 

1、10年年薪

     假設某員工今年的年薪是30000元,年薪的年增長率6%。編寫一個Java應用程序計算該員工10年后的年薪,並統計未來10年(從今年算起)總收入。(知識點:循環語句for)[選做題]

 

 

 

2、猴子吃桃

     猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個,第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。(知識點:循環語句 while)[選做題]

3、匯款

     編寫一個程序,計算郵局匯款的匯費。如果匯款金額小於100元,匯費為一元,如果金額在100元與5000元之間,按1%收取匯費,如果金額大於5000元,匯費為50元。匯款金額由命令行輸入。(知識點:條件語句) [選做題]

4、1到100

     分別使用for循環,while循環,do循環求1到100之間所有能被3整除的整數的和。(知識點:循環語句) [選做題]

For:

public static void main(String[] args) {

     int sum = 0;

    

     for (int i=0;i < 101; i++) {

        if (i % 3 == 0) {

           sum = sum + i;

        } else {

        }

     }

     System.out.println(sum);

 

   }

}

 

While:

 

int x = 0;

     while (x < 100) {

        if (x % 3 == 0) {

           sum = sum + x;

           x++;

        } else {

           x++;

        }

 

     }

     System.out.println(sum);

   }

}

 

 

 

 

5、輸出0-9之間的數

     輸出0-9之間的數,但是不包括5。 [選做題]

       for(int i=1;i<10;i++){

              if(i!=5){

                 System.out.println(i);

              }

              else{

                

              }

             }

6、整數n的階乘

     編寫一個程序,求整數n的階乘,例如5的階乘是1*2*3*4*5 [選做題]

    // 求整數n的階乘

       //1: for循環

     

       // int x;

       // int sum=1;

       // System.out.println("請輸入數字n:");

       // Scanner in=new Scanner(System.in);

       // int i=in.nextInt();

       // String s= "階乘=";

       // for(x=1;x<=i;x++){

       // sum=sum*x;

       // if (x<i){

       // s = s + x+ '*' ;

       // }

       // else{

       // s = s + x + "=" + sum;

       // }

       // }

       // System.out.println(i+s);

     

       // 2遞歸方法:

       System.out.println("請輸入一個數:");

       Scanner input = new Scanner(System.in); //構建一個輸入實例

            int n = input.nextInt();                //輸入n的值

    //    n的階乘的值為:f(n);                //用遞歸函數求解n的階乘

            System.out.println(n+"!=" + f(n));

        }

     

        public static int f(int n){         //階乘求解函數

            if(n == 0){                             //判斷傳進來的n是否為0,若為零返回階乘為1

                return 1;

            }

            return n*f(n-1);             //重新調用函數,繼續判斷n-1是否為零,

        }                                          //若不為0則return值為n*(n-1)*factorial(n-1-1),直到n=0,跳出函數

     }

7、大於200的最小的質數

     編寫一個程序,找出大於200的最小的質數[選做題]

 

 

 

 

8、反轉

     由命令行輸入一個4位整數,求將該數反轉以后的數,如原數為1234,反轉后的數位4321 [選做題]

 


免責聲明!

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



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