JavaBasic案例集

案例:减肥计划

在这里插入图片描述

需求:输入星期数,显示今天的减肥活动

思路:

  1. 键盘录入一个星期数,用一个变量来进行接收
  2. 对星期数进行判断,这里用if语句实现
  3. 在对应的语句控制中输出对应的减肥活动
import java.util.Scanner;
public class jianfeijihua {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个星期数:");
        int week = sc.nextInt();

        if(week<1||week>7){
            System.out.println("你输入的星期数有误!");
        }else if(week ==1){
            System.out.println("跑步");
        }else if(week ==2){
            System.out.println("游泳");
        }else if(week ==3){
            System.out.println("慢走");
        }else if(week ==4){
            System.out.println("动感单车");
        }else if(week ==5){
            System.out.println("拳击");
        }else if(week ==6){
            System.out.println("爬山");
        }else{
            System.out.println("好好吃一顿");
        }
    }  
}

在这里插入图片描述

导包:

  1. 手动导包
  2. 快捷键导包 Alt + Enter
  3. 自动导包
import java.util.Scanner;

public class jianfeijihua2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        System.out.println("请输入一个星期数:");
        int week =sc.nextInt();
        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("你输入的星期数有误!");
        }  
    } 
}

案例:逢七过

在这里插入图片描述

思路:

  1. 数据在1-100之间,用for循环实现数据的获取

  2. 根据规则,用if语句实现数据的判断:要么个位是7,要么十位是7,要么能够被7整除

    x%107 x/10%107 x%7==0

  3. 在控制台输出满足规则的数据

public class fengqiguo {
    public static void main(String[] args) {
        for(int x = 1;x<=100;x++){
            // if(x%10==7){
            //     System.out.println("过"+x);
            // }else if(x/10%10==7){
            //     System.out.println("过"+x);
            // }else if(x%7==0){
            //     System.out.println("过"+x);
            // }
            if(x%10==7 || x/10%10==7 || x%7==0){
                System.out.println("逢七过的数有:"+x);
            }
        }
    }   
}

案例:不死神兔

在这里插入图片描述

找规律:

第一个月:1

第二个月:1

第三个月:2 1+1

第四个月:3 2+1

第五个月:5 3+2

规律:

从第三个数据开始,每一个数据是前两个数据之和。

第1个,第2个数据是已知的。

在这里插入图片描述
在这里插入图片描述

public class busishentu {
    public static void main(String[] args) {
        //定义一个数组
        int[] arr =  new int[20];
        int sum;
        //因为第1个月,第2个月兔子的对数是已知的,都是1,所以数组的第1个元素,第2个元素值也都是1
        arr[0] = 1;//arr[x-2]
        arr[1] = 1;//arr[x-1]


        //用循环实现计算每个月的兔子对数
        for(int x =2;x<arr.length;x++){
            arr[x]= arr[x-2]+arr[x-1];  
        }
        sum =arr[19];
        System.out.println(sum);
    }
}

案例:百钱百鸡

在这里插入图片描述

  • 思路(嵌套循环)
    1. 第一层循环,用于表示鸡翁的范围,初始化话表示的变量定义为x=0,判断条件是x<=20
    2. 第二层循环,用于表示鸡母的范围,初始化表达式的变量定义为y=0,判断条件是y<=33
    3. 这时候,用于表示鸡雏的变量z=100-x-y
    4. 判断表达式z%3==0和表达式5x+3y+z/3=100是否同时成立,如果成立,输出对应的x,y,z的值就是对应的鸡翁、鸡母、鸡雏的值
public class baiqianbaiji {
    public static void main(String[] args) {

        int z;
        
       for(int x = 0;x<=20;x++){
           for(int y = 0;y<=33;y++){
               z=100-x-y;
               if(z%3==0 && 5*x+3*y+z/3 == 100){
                   System.out.println(x+","+y+","+z);
               }
           }
       }
    }  
}

案例:数组元素求和

在这里插入图片描述

思路:

  1. 定义一个数组,用静态初始化完成数组元素的初始化

  2. 定义一个求和变量,初始值是0

  3. 遍历数组,获取到数组中的每一个元素

  4. 判断该元素是否满足条件,如果满足条件就累加

    arr[x]%10!=7(十位)

    arr[x]/10%10!=7(个位)

    arr[x]%2==0 (偶数)

  5. 输出求和变量的值

//数组元素求和
public class shuzuyuanshuqiuhe {
    public static void main(String[] args) {
       //定义一个数组,用静态初始化完成数组元素的初始化
        int [] arr= {68,27,95,88,171,996,51,210};
       //定义一个求和变量,初始值为0
        int sum=0;
        //遍历数组,获取到数组中的每一个元素
        for(int x=0;x<arr.length;x++){
            //判断该元素是否满足条件,如果满足条件就累加
            if(arr[x]%10!=7&&arr[x]/10%10!=7&&arr[x]%2==0){
                sum +=arr[x];
            }
        }
        System.out.println(sum);
    }
}

案例:数组内容相同

在这里插入图片描述

//数组内容相同

        //定义一个方法,用于比较两个数组的内容是否相同

        /*比较两个数组的内容是否相同,按照下面的步骤实现就可以了
                首先比较数组长度,如果长度不相同,数组内容肯定不相同,返回false
                其次遍历,比较两个数组中的每一个元素,只要有元素不相同,返回false
                最后循环遍历结束后,返回false
         */
public class shuzuneirongxiangtong {
    public static void main(String[] args) {
        //定义两个数组,分别使用静态初始化完成数组元素的初始化
        int[] arr = {11,22,33,43,55};
        int[] arr1 = {11,22,33,44,55};

        //调用方法,用变量进行接收
        boolean flag = compare(arr, arr1);
        
        //输出结果
        System.out.println(flag);
    }


    //定义一个方法,用于比较两个数组的内容是否相同
    /*
        两个明确:
        返回值类型:boolean
        参数:int[]arr,int[]arr1
     */
    public static boolean compare(int [] arr,int []arr1){
        //首先比较数组长度,如果长度不相同,数组内容肯定不相同,返回false
        if(arr.length !=arr1.length){
            return false;
        }
        //次遍历,比较两个数组中的每一个元素,只要有元素不相同,返回false
        for(int x=0;x<arr.length;x++){
            if(arr[x]!=arr1[x]){
                return false;
            }
        }
        //最后循环遍历结束后,返回false
        return true;
    }
}

案例:查找

在这里插入图片描述

思路:

  1. 定义一个数组,用静态初始化完成数组元素的初始化
  2. 键盘录入要查找的数据,用一个变量接收
  3. 定义一个索引变量,初始值为-1
  4. 遍历数组,获取到数组中的每一个元素
  5. 拿键盘录入的数组和数组中的每一个元素进行比较,如果值相同,就把该值对应的索引赋值给索引变量,并结束循环
  6. 输出索引变量
//查找


/*
1. 定义一个数组,用静态初始化完成数组元素的初始化
2. 键盘录入要查找的数据,用一个变量接收
3. 定义一个索引变量,初始值为-1
4. 遍历数组,获取到数组中的每一个元素
5. 拿键盘录入的数组和数组中的每一个元素进行比较,如果值相同,就把该值对应的索引赋值给索引变量,并结束循环
6. 输出索引变量


 */
import java.util.Scanner;

public class chazhao {
    public static void main(String[] args) {
        //1. 定义一个数组,用静态初始化完成数组元素的初始化
       int [] arr={19,28,37,46,50};
       //2. 键盘录入要查找的数据,用一个变量接收
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入要查找的数据:");
        int number = sc.nextInt();

        //3. 定义一个索引变量,初始值为-1
        int index = -1;

        //4. 遍历数组,获取到数组中的每一个元素
        for(int x=0;x<arr.length;x++){
            //5. 拿键盘录入的数组和数组中的每一个元素进行比较,如果值相同,就把该值对应的索引赋值给索引变量,并结束循环
            if(arr[x] == number){
                index = x;
                break;
            }
        }
        System.out.println("index:"+index);
    }
}
  • 查找指定的数据在数组中的索引
    • 两个明确
      • 返回值的类型:int
      • 参数:int[] arr,int number
//查找


/*
1. 定义一个数组,用静态初始化完成数组元素的初始化
2. 键盘录入要查找的数据,用一个变量接收
3. 定义一个索引变量,初始值为-1
4. 遍历数组,获取到数组中的每一个元素
5. 拿键盘录入的数组和数组中的每一个元素进行比较,如果值相同,就把该值对应的索引赋值给索引变量,并结束循环
6. 输出索引变量


 */
import java.util.Scanner;

public class chazhao {
    public static void main(String[] args) {
        //1. 定义一个数组,用静态初始化完成数组元素的初始化
       int [] arr={19,28,37,46,50};
       //2. 键盘录入要查找的数据,用一个变量接收
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入要查找的数据:");
        int number = sc.nextInt();
        
        int index =getIndex(arr, number);

        System.out.println("index:"+index);
    }

    public static int getIndex(int [] arr,int number){
        

        //3. 定义一个索引变量,初始值为-1
        int index = -1;

        //4. 遍历数组,获取到数组中的每一个元素
        for(int x=0;x<arr.length;x++){
            //5. 拿键盘录入的数组和数组中的每一个元素进行比较,如果值相同,就把该值对应的索引赋值给索引变量,并结束循环
            if(arr[x] == number){
                index = x;
                break;
            }
        }
        //返回索引
        return index;

    }
}

案例:反转

在这里插入图片描述
在这里插入图片描述

思路:

  1. 定义一个数组,用静态初始化完成数组中元素的初始化
  2. 循环遍历数组,这一次初始化语句定义两个索引变量,判断条件是开始索引小于等于结束索引
  3. 变量交换
  4. 遍历数组
public class fanzhuan {
    public static void main(String[] args) {
        //定义一个数组,用静态初始化完成数组中元素的初始化
        int [] arr = {19,28,37,46,50};
        reverse(arr);
        printArray(arr);
    }

    //1. 遍历数组
    /*
    两个明确:
        返回值类型:void
        参数:int[]arr
     */

    public static void printArray(int[] arr){
        System.out.println("[");

        for(int x=0;x<arr.length;x++){
            if(x==arr.length-1){
                System.out.println(arr[x]);
            }else{
                System.out.println(arr[x]+",");
            }
        }
        System.out.println("]");
    }

    //反转循环
    public static void reverse(int [] arr){
        //循环遍历数组,这一次初始化语句定义两个索引变量,判断条件是开始索引小于等于结束索引
        for(int start=0,end=arr.length-1;start<=end;start++,end--){
            //变量交换
            int temp=arr[start];
            arr[start]=arr[end];
            arr[end]=temp;
        }
    }
}

案例:评委打分

在这里插入图片描述

思路:

  1. 定义一个数组,用动态初始化完成数组元素的初始化,长度为6
  2. 键盘录入评委分数
  3. 由于是6个评委打分,所以,接收评委分数的操作,用循环改进
  4. 定义方法实现获取数组中的最高分(数组最大值),调用方法
  5. 定义方法实现获取数组中的最低分(数组最小值),调用方法
  6. 定义方法实现获取数组中的所有元素的和(数组元素求和),调用方法
  7. 按照计算规则进行计算得到平均分
  8. 输出平均分
import java.util.Scanner;

public class pingweipingfen {
    public static void main(String[] args) {
        //定义一个数组,用动态初始化完成数组元素的初始化,长度为6
        int [] arr = new int[6];
        //键盘录入评委分数
        Scanner sc =new Scanner(System.in);

        for(int x = 0;x<arr.length;x++){
            System.out.println("请输入第"+(x+1)+"个评委的打分:");
            arr[x]=sc.nextInt();
        }
        //定义方法实现获取数组中的最高分(数组最大值),调用方法
        int max =getMax(arr);
        //定义方法实现获取数组中的最低分(数组最小值),调用方法
        int min =getMin(arr);
        //定义方法实现获取数组中的所有元素的和(数组元素求和),调用方法
        int sum =gerSum(arr);
        //按照计算规则进行计算得到平均分
        int avg =(sum - max -min)/(arr.length-2);

        //输出平均分
        System.out.println("最终的平均分为:"+avg);
        
    }

    //定义方法实现获取数组中的最高分(数组最大值),调用方法
    public static int getMax(int[] arr){
        int max = arr[0];
        for(int x=1;x<arr.length;x++){
            if(arr[x]>max){
                max=arr[x];
            }
        }
        return max;
    }

    //定义方法实现获取数组中的最低分(数组最小值),调用方法
    public static int getMin(int[] arr){
        int min = arr[0];
        for(int x=1;x<arr.length;x++){
            if(arr[x]>min){
                min=arr[x];
            }
        }
        return min;
    }

    //定义方法实现获取数组中的所有元素的和(数组元素求和),调用方法
    public static int gerSum(int[] arr){
        int sum  = 0;

        for(int x = 0;x<arr.length;x++){
            sum +=arr[x];
        }
        return sum;
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二毛就不是钱吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值