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 [选做题]

猜你喜欢

转载自www.cnblogs.com/liuyanhuiyanhui/p/12398850.html