同步练习(Java SE(二))

案例一:奇偶数

需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数

分析:1.为了体现任意给出的一个整数,采用键盘录入一个数据

        2.判断整数是偶数还是奇数要分两种情况进行判断,使用if...else结构

        3.判断是否偶数需要使用取余运算符实现该功能

        4.根据判定情况,在控制台输出对应的内容

package test;

import java.util.Scanner;

public class Test4 {
    public static void main(String[] args) {
        // 1.为了体现任意给出的一个整数,采用键盘录入一个数据
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int number = sc.nextInt();
        // 2.判断整数是偶数还是奇数要分两种情况进行判断,使用if...else结构
        // 3.判断是否偶数需要使用取余运算符实现该功能
        // 4.根据判定情况,在控制台输出对应的内容
        if (number % 2 == 0){
            System.out.println(number + "是偶数");
        }else {
            System.out.println(number + "是奇数");
        }
    }
}

案例二:考试奖励

需求:小明快要期末考试了,小明对他爸爸说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出(95~100自行车,90~94游乐园,80~89玩具车,80以胖揍)

分析:1.小明的考试成绩未知,可以使用键盘录入的方式获取值,使用键盘录入功能需要导包,创建对象,接受数据

        2.由于奖励种类较多,属于多种判断,采用if...else...if格式实现

        3.为每种判断设置对应的条件

        4.为每种判断设置对应的奖励

package test;

import java.util.Scanner;

public class Test5 {
    public static void main(String[] args) {
        // 1.小明的考试成绩未知,可以使用键盘录入的方式获取值,使用键盘录入功能需要导包,创建对象,接受数据
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入小明的考试成绩:");
        int score = sc.nextInt();
        // 2.由于奖励种类较多,属于多种判断,采用if...else...if格式实现
        // 3.为每种判断设置对应的条件
        // 4.为每种判断设置对应的奖励
        if(score > 100 || score <0){
            System.out.println("您输入的分数有误");
        }else if(score >= 95 && score <= 100){
            System.out.println("奖励自行车一辆");
        }else if (score >= 90 && score <= 94){
            System.out.println("奖励游乐场一次");
        }else if (score >= 80 && score <= 89){
            System.out.println("奖励玩具车一个");
        }else {
            System.out.println("奖励胖揍一顿");
        }
    }
}

案例三:春夏秋冬

需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出

春:3、4、5

夏:6、7、8

秋:9、10、11

冬:1、2、12

分析:1.键盘录入月份数据,使用变量接收

        2.多情况判断,这里采用switch语句实现

        3.在每种情况中,完成输出对应的季节

package test;

import java.util.Scanner;

public class Test6 {
    public static void main(String[] args) {
        // 1.键盘录入月份数据,使用变量接收
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入月份:");
        int month = sc.nextInt();
        // 2.多情况判断,这里采用switch语句实现
        // 3.在每种情况中,完成输出对应的季节
        switch (month){
            case 3:
            case 4:
            case 5:
                System.out.println("现在是春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("现在是夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("现在是秋季");
                break;
            case 12:
            case 1:
            case 2:
                System.out.println("现在是冬季");
                break;
            default:
                System.out.println("您输入的月份有误");
        }
    }
}

案例四:求和

需求:求1-5之间的数据和,并把求和结果在控制台输出

分析:1.求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0

        2.从1开始到5结束的数据使用循环结构完成

        3.将反复进行的事情写入循环结构内部,此处反复进行的事情是将数据i加到用于保存最终求和的变量sum中

        4.当循环执行完毕时,将最终数据打印出来

package test;

public class Test7 {
    public static void main(String[] args) {
        // 1.求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
        int sum = 0;
        // 2.从1开始到5结束的数据使用循环结构完成
        for (int i = 1; i <= 5; i++){
            // 3.将反复进行的事情写入循环结构内部,此处反复进行的事情是将数据i加到用于保存最终求和的变量sum中
            sum += i;
        }
        // 4.当循环执行完毕时,将最终数据打印出来
        System.out.println("1-5之间的数字和为:"+sum);
    }
}

案例五:求偶数和

需求:求1-100之间的偶数和,并把求和结果在控制台输出

分析:1.对1-100的数据求和与1-5的数据几乎完全一样,仅仅是结束条件不同

        2.对1-100的偶数求和,需要对求和操作添加限制条件

        3.限制条件是偶数才参与运算,因此条件应该是判断是否是偶数

        4.当循环执行完毕时,将最终数据打印出来

package test;

public class Test8 {
    public static void main(String[] args) {
        // 1.对1-100的数据求和与1-5数据求和几乎完全一样,仅仅是结束条件不同
        int sum = 0;
        for (int i = 1; i <= 100; i++){
            // 2.对1-100的偶数求和,需要对求和操作添加限制条件
            // 3.限制条件是偶数才参与运算,因此条件应该是判断是否是偶数
            if (i % 2 == 0){
                sum += i;
            }
        }
        // 4.当循环执行完毕时,将最终数据打印出来
        System.out.println("1-100之间的偶数和是:"+sum);
    }
}

案例六:水仙花

需求:在控制台输出所有的"水仙花数"

分析:1.输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束

        2.不是每个三位数都是水仙花数,因此需要判定,满足条件的数字才进行输出

        3.判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等

        4.在计算之前获取三位数中每个位上的值

package test;

public class Test9 {
    public static void main(String[] args) {
        // 1.输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
        for (int i = 100; i < 1000; i++ ){
            // 2.不是每个三位数都是水仙花数,因此需要判定,满足条件的数字才进行输出
            // 3.判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等
            // 4.在计算之前获取三位数中每个位上的值
            int bit = i % 10;
            int ten = i / 10 % 10;
            int hundred = i / 100 % 10;
            if (bit * bit * bit + ten * ten *ten + hundred * hundred *hundred == i){
                System.out.println(i+"是水仙花数");
            }
        }
    }
}

案例七:统计

需求:统计"水仙花数"一共有多少个,并在控制台输出个数

分析:1.定义变量count,用于保存"水仙花数"的数量,初始值为0

        2.在判断水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1

        3.打印输出最终结果

package test;

public class Test10 {
    public static void main(String[] args) {
        // 1.定义变量count,用于保存"水仙花数"的数量,初始值为0
        int count = 0;
        for (int i = 100; i < 1000; i++ ){
            // 2.在判断水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1
            int bit = i % 10;
            int ten = i / 10 % 10;
            int hundred = i / 100 % 10;
            if (bit * bit * bit + ten * ten *ten + hundred * hundred *hundred == i){
                count ++;
            }
        }
        // 3.打印输出最终结果
        System.out.println("水仙花共有:"+count+"个");
    }
}

案例八:珠穆朗玛峰

需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度

分析:1.因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环

        2.循环的执行过程中每次纸张折叠,纸张的厚度要加倍,因此需要先定义纸张的厚度

        3.折叠的过程中当纸张厚度大于珠穆朗玛峰就停止了,因此急需执行的要求是纸张的厚度小于珠峰高度

        4.设置一个计数器,在循环中执行累加,对应折叠了多少次

package test;

public class Test11 {
    public static void main(String[] args) {
        int everest = 8844430;
        // 1.因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环
        // 2.循环的执行过程中每次纸张折叠,纸张的厚度要加倍,因此需要先定义纸张的厚度
        double paperDepth = 0.1;
        // 3.折叠的过程中当纸张厚度大于珠穆朗玛峰就停止了,因此急需执行的要求是纸张的厚度小于珠峰高度
        // 4.设置一个计数器,在循环中执行累加,对应折叠了多少次
        int count = 0;
        while (paperDepth <= everest){
            paperDepth *= 2;
            count ++;
        }
        System.out.println("需要折叠"+count+"次");
    }
}

案例九:猜数字

需求:程序自动生成一个1-100之间的数字,实用程序实现猜出这个数字是多少

分析:1.要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100

        2.因为无法预知几次能够猜中,因此猜数字这个操作应该是反复进行的,需要使用循环,而while循环通常用于未知循环次数的循环

        3.使用程序实现猜数字,每次均要时输入猜测的数字值,需要使用键盘录入实现

        4.比较输入的数字和系统产生的数据,需要使用分支语句。这里使用if...else...if...格式,根据不同情况进行猜测结果显示,当猜中后使用break结束循环即可

package test;

import java.util.Random;
import java.util.Scanner;

public class Test12 {
    public static void main(String[] args) {
        // 1.要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100
        Random r = new Random();
        int number = r.nextInt(100)+1;
        // 2.因为无法预知几次能够猜中,因此猜数字这个操作应该是反复进行的,需要使用循环,而while循环通常用于未知循环次数的循环
        while(true) {
            // 3.使用程序实现猜数字,每次均要时输入猜测的数字值,需要使用键盘录入实现
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入您猜测的数字:");
            int guessNumber = sc.nextInt();
            // 4.比较输入的数字和系统产生的数据,需要使用分支语句。这里使用if...else...if...格式,根据不同情况进行猜测结果显示,当猜中后使用break结束循环即可
            if (guessNumber > number){
                System.out.println("您猜测的数大了");
            }else if (guessNumber < number){
                System.out.println("您猜测的数小了");
            }else{
                System.out.println("恭喜您猜中了");
                break;
            }
        }
    }
}


版权声明:本文为weixin_52993606原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。