第三章流程控制语句练习和课后作业

本文提供了一系列Java编程语言中的流程控制语句练习题,包括if语句、switch语句、while和do...while循环等,通过具体示例展示了如何判断数字特性、计算数列总和、分析成绩等级等多种应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.exercise;

public class _06流程控制语句练习和课后作业 {

public static void main(String[] args) {

//if语句:

    //1、编写java程序,完成以下功能:
    //假设有整型变量x,判断x是否为偶数,若为偶数,则在控制台上打印“输入的数值是偶数”。
    //无论x是否为偶数,最后都要在控制台上输出x的值
    System.out.println("if语句:");
    System.out.println("第一题");
    int x = 4;
    if ((x % 2) == 0)
    {
        System.out.println("输入的数值是偶数");
    }
    System.out.println("x的值为:"+ x);


    //2、有两个整型变量x1,y,请在控制台上输出x与y中值较大的那个数。 
    System.out.println("\n第二题");
    int x1 = 9, y =4;
    System.out.println("x1的值为:" + x1);
    System.out.println("y的值为:" + y);
    if (x1 < y)
    {
        System.out.println("y大,y=" + y);
    }
    else if (x1 > y)
    {
        System.out.println("x1大,x1=" + x1);
    }
    else
    {
        System.out.println("x1 = y");
    }

//switch语句:

    //仿照左侧示例完成如下练习:
    //如果是星期五则在页面上显示“Finally Friday!”,
    //如果是星期六则在页面上显示“Super Saturday!”,
    //如果是星期日则在页面上显示“Sleepy Sunday!”,
    //其他日子显示“I hope for my weekend!”(提示利用switch语句)
    System.out.println("\nswitch语句:");
    System.out.println("第一题");
    int number = 5;
    switch (number)
    {
        case 5:
            System.out.println("Finally Friday!");
            break;
        case 6:
            System.out.println("Super Saturday!");
            break;
        case 7:
            System.out.println("Sleepy Sunday!");
            break;
        default:
            System.out.println("I hope for my weeknd!");
    }

//while、do…while语句:

    System.out.println("\nwhile、do...while语句:");
    //1、计算1+2+3+…+100的和(提示利用while语句)
    System.out.println("第一题");
    int i1 = 1, sum1 = 0;
    while (i1 <= 100)
    {
        sum1 = sum1 + i1;
        i1++;
    }
    System.out.println("1+2+3+...+100的和为:" + sum1);

    //2、计算从1到100的所有奇数相加(提示利用while语句)
    System.out.println("\n第二题");
    int i = 1, sum = 0;

    //      while (i <= 100)
    //      {
    //          if ((i%2) != 0)
    //          {
    //              sum = sum + i;
    //          }
    //          i++;
    //      }
    //      System.out.println("1到100所有奇数的和为:" + sum);

    do {
        if ((i%2) != 0)
        {
            sum = sum + i;
        }
        i++;
    } while (i <= 100);
    System.out.println("1到100所有奇数的和为:" + sum);

//课后作业:

    System.out.println("\n课后作业");
//      1、企业发放的奖金根据利润提成。
        //利润低于或等于10万元时,奖金可提10%;
        //利润高于10万元,低于或等于20万元时,高于10万元的部分,可提成7.5%;
        //高于20万,低于或等于40万时,高于20万元的部分,可提成5%;
        //高于40万,低于或等于60万时,高于40万元的部分,可提成3%;
        //高于60万,低于或等于100万时,高于60万元的部分,可提成1.5%,
        //高于100万元时,超过100万元的部分按1%提成,
        //在程序中设定一个变量为当月利润,求应发放奖金总数?(知识点:条件语句) [必做题]
        System.out.println("第一题");
        double profit = 2000000, comm = 0.0;
        System.out.println("您的当月利润为:" + profit);
        if (profit <= 100000)
        {
            comm = profit * 0.1;
        }
        else if (100000 < profit && profit <= 200000)
        {
            comm = 10000 + (profit - 100000) * 0.075;
        }
        else if (200000 < profit && profit <= 400000)
        {
            comm = 10000 + (profit - 200000) * 0.05;
        }
        else if (400000 < profit && profit <= 600000)
        {
            comm =  10000 + (profit - 400000) * 0.03;
        }
        else if (600000 < profit && profit <= 1000000)
        {
            comm =  10000 + (profit - 600000) * 0.015;
        }
        else
        {
            comm =  10000 + (profit - 1000000) * 0.01;
        }
        System.out.println("应发奖金总数为:" + comm);

//      2、给定一个成绩a,使用switch结构求出a的等级。
        //A:90-100,B:80-89,C:70-79,D:60-69,E:0~59(知识点:条件语句switch)
//      [必做题]
        System.out.println("\n第二题");
        int a = 88;
        System.out.println("你输入的成绩为:" + a);
        switch (a/10)
        {
            case 9:
            case 10:
                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");        
        }

//      3、假设某员工今年的年薪是30000元,年薪的年增长率6%。
        //编写一个Java应用程序计算该员工10年后的年薪,并统计未来10年(从今年算起)
        总收入。(知识点:循环语句for)[选做题]
        System.out.println("\n第三题");
        double i2 = 30000, sum2 = 0;
        for (i=1; i<=10; i++)
        {
            sum2 = sum2 + i2;
            i2 = i2 + (i2 * 0.06);
        }
        System.out.println("未来10年的总收入为:¥" + (int)sum2);

//      4、猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,
        //第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
        //以后每天早上都吃了前一天剩下的一半零一个。
        //到第10天早上想再吃时,见只剩下一个桃子了。
        //求第一天共摘了多少。(知识点:循环语句 while)[选做题]
        System.out.println("\n第四题");
        int a1 = 1, a2 = 1, sum3 = 0;
        while (a1 <= 10)
        {
            sum3 = sum3 +a2;
            a2 = (a2 * 2) +1;
            a1++;
        }
        System.out.println("第一天一共摘了:" + sum3 + "个桃子");


//      5、输入一个数字,判断是一个奇数还是偶数(知识点:条件语句) [必做题]
        System.out.println("\n第五题");
        int a3 = 112;
        System.out.println("您输入的数字为:" + a3);
        if ((a3%2) == 0)
        {
            System.out.println("您输入的数字为偶数!");
        }
        else
        {
            System.out.println("您输入的数字为奇数!");
        }       

//      6、编写程序, 判断一个变量x的值,
        //如果是1,输出x=1,如果是5,输出x=5,如果是 10,输出x=10,
        //除了以上几个值,都输出x=none。(知识点:条件语句) [必做题]
        System.out.println("\n第六题");
        int x2 = 2;
        System.out.println("你输入的数字为:" + x2);
        switch (x2)
        {
            case 1:
                System.out.println("x=" + x2);
                break;
            case 5:
                System.out.println("x=" + x2);
                break;
            case 10:
                System.out.println("x=" + x2);
                break;
            default:
                System.out.println("x=none");
        }

//      7、判断一个数字是否能被5和6同时整除(打印能被5和6整除),
        //或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),
        //不能被5或6整除,(打印不能被5或6整除)(知识点:条件语句) [必做题]
        System.out.println("\n第七题");
        int a4 =18;
        if (a4 % 5 == 0 && a4 % 6 == 0)
        {
            System.out.println("能被5和6整除");
        }
        else if (a4 % 5 == 0 && a4 % 6 != 0)
        {
            System.out.println("能被5整除");
        }
        else if (a4 % 5 != 0 && a4 % 6 == 0)
        {
            System.out.println("能被6整除");
        }
        else
        {
            System.out.println("不能被5或6整除");
        }

//      8、输入一个年份,判断这个年份是否是闰年(知识点:条件、循环语句) [必做题]
        System.out.println("\n第八题");
        int year = 2012;
        System.out.println("您输入的年份为:" + year);
        if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
        {
            System.out.println("您输入的年份是闰年!");
        }
        else
        {
            System.out.println("您输入的年份不是闰年!");
        }


//      9、输入一个0~100的分数,如果不是0~100之间,打印分数无效,
        //根据分数等级打印A,B,C,D,E(知识点:条件语句if elseif) [必做题]
        System.out.println("\n第九题");
        int a5 = 345;
        if (a5 >= 0 && a5 <= 100)
        {
            switch (a5/10)
            {
                case 9:
                case 10:
                    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");        
            }
        }
        else
        {
            System.out.println("您输入的分数无效!");
        }

//      10、输入三个整数x,y,z,请把这三个数由小到大输出(知识点:条件语句) [必做题]
        System.out.println("\n第十题");
        int x4 = 1, y1 = 3, z = 2, temp;
        if (x4 > y1)
        {
            temp = x4;
            x4 = y1;
            y1 = temp;
        }
        if (x4 > z)
        {
            temp = x4;
            x4 = z;
            z = temp;
        }
        if (y1 > z)
        {
            temp = z;
            z = y1;
            y1 = temp;
        }
        System.out.println("从小到大输出为:" + x4 + " " + y1+ " "  + z);

//      11、有一个不多于5位的正整数,求它是几位数,分别打印出每一位数字。
       (知识点:条件语句)
//       [必做题]
        System.out.println("\n第十一题");
        int a6 = 84374;
        System.out.println("您输入的数字是:" + a6);
        int r, r1, r2, r3, r4, sum5;
        if ((a6 / 10000) >= 1)
        {
            System.out.println("您输入的数字为5位数!");
            r = a6 / 10000;         //取万位数
            r1 = (a6 / 1000) % 10;  //取千位数
            r2 = (a6 / 100) % 10;   //取百位数
            r3 = (a6 % 100) / 10;   //取十位数
            r4 = a6 % 10;           //取各位数
            sum5 = r + r1 + r2 + r3 + r4;
            System.out.println("各个位数相加为:" + sum5);
        }
        else if ((a6 / 1000) >= 1)
        {
            System.out.println("您输入的数字为4位数!");
            r1 = (a6 / 1000) % 10;  //取千位数
            r2 = (a6 / 100) % 10;   //取百位数
            r3 = (a6 % 100) / 10;   //取十位数
            r4 = a6 % 10;           //取各位数
            sum5 = r1 + r2 + r3 + r4;
            System.out.println("各个位数相加为:" + sum5);
        }
        else if ((a6 / 100) >= 1)
        {
            System.out.println("您输入的数字为3位数!");
            r2 = (a6 / 100) % 10;   //取百位数
            r3 = (a6 % 100) / 10;   //取十位数
            r4 = a6 % 10;           //取各位数
            sum5 = r2 + r3 + r4;
            System.out.println("各个位数相加为:" + sum5);
        }
        else if ((a6 / 10) >= 1)
        {
            System.out.println("您输入的数字为2位数!");
            r3 = (a6 % 100) / 10;   //取十位数
            r4 = a6 % 10;           //取各位数
            sum5 = r3 + r4;
            System.out.println("各个位数相加为:" + sum5);
        }
        else
        {
            System.out.println("您输入的数字为1位数!");
            sum5 = a6;
            System.out.println("各个位数相加为:" + sum5);
        }

//      12、编写一个程序,计算邮局汇款的汇费。如果汇款金额小于100元,汇费为一元,
        如果金额在
//      100元与5000元之间,按1%收取汇费,如果金额大于5000元,汇费为50元。
        //汇款金额由命令行输入。(知识点:条件语句) [选做题]
//      System.out.println("\n第十二题");
//      Scanner scanner = new Scanner(System.in);
//      System.out.println("请输入您要汇款的金额:");
//      int mon = scanner.nextInt();
//      double m = 0;
//      if (mon < 100)
//      {
//          m =1;
//      }
//      else if (mon >= 100 && mon <= 5000)
//      {
//          m = mon * 0.01;
//      }
//      else
//      {
//          m = 50;
//      }
//      System.out.println("您此次汇款的金额需要缴纳的汇费为:" + m);


//      13、分别使用for循环,while循环,do循环求1到100之间所有能被3整除的整数的和。
//     (知识点:循环语句) [选做题]
        System.out.println("\n第十三题");
        int sum6 = 0;
//      for (i=1; i<=100; i++)
//      {
//          if (i % 3 == 0)
//          {
//              sum6 = sum6 + i;
//          }
//      }

//      int i3 = 1;
//      while (i3 <= 100)
//      {
//          if (i3 % 3 == 0)
//          {
//              sum6 = sum6 + i3;
//          }
//          i3++;
//      }
        int i4 = 0;
        do {
            if (i4 % 3 == 0)
            {
                sum6 = sum6 + i4;
            }
            i4++;
        } while (i4 <= 100);
        System.out.println("1到100之间所有能被3整除的整数的和为:" + sum6);


//      14、输出0-9之间的数,但是不包括5。 [选做题]
        System.out.println("\n第十四题");
        for (i=0; i<10; i++)
        {
            if (i != 5)
            {
                System.out.println(i);
            }
        }

//      15、编写一个程序,求整数n的阶乘,例如5的阶乘是1*2*3*4*5 [选做题]
        System.out.println("\n第十五题");
        int n = 10, m;
        m = n;
        int fa = n;
        for (i=1; n>1; n--)
        {
            fa = fa * (n - 1);
        }
        System.out.println(m + " 的阶乘为: " + fa);

//      16、编写一个程序,找出大于200的最小的质数[选做题]
        System.out.println("\n第十六题");
        int n1 = 200;
        while (true)
        {
            boolean b = true;
            for (int j = 2; j< n1/2; j++)
            {
                if (n1 % j == 0) b = false;
            }
            if (b) 
            {
                break;
            }
            n1++;
        }
        System.out.println("大于200的最小的质数为:" + n1);


//      17、由命令行输入一个4位整数,求将该数反转以后的数,
        //如原数为1234,反转后的数位4321 [选做题]
        int a7 = 9783;
        System.out.println("您输入的数字是:" + a7);
        int p1, p2, p3, p4;
        p1 = a7 / 1000;         //取千位数
        p2 = (a7 / 100) % 10;   //取百位数
        p3 = (a7 % 100) / 10;   //取十位数
        p4 = a7 % 10;           //取各位数
        System.out.println("该数反转以后的数为:" + p4 + p3 + p2 + p1);

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值