Java笔记---基础练习

案例1:减肥计划
需求:输入星期数,显示今天的减肥活动
周一:跑步;
周二:游泳;
周三:慢走;
周四:动感单车;
周五:拳击;
周六:爬山;
周日:好好吃一顿。

import java.util.Scanner;  //导包
public class First {
    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("输入有误!!!");
        }

    }
}

案例2:逢七过
需求:包含7或7的倍数,喊过,打印出1-100之间满足的数。

//个位是7;十位是7;7的倍数
        for(int i = 1;i<=100;i++){
          if(i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0){
              System.out.println(i);
          }
        }

案例3:不死神兔
需求:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子不死,问第二十个月的兔子对数为多少? (斐波那契数列)

 //为存储多个月的兔子数,定义一个数组,用动态初始化完成数组元素的初始化,长度为20
      int[] arr = new int[20]; 
      arr [0] = 1;  //前两个月兔子对数已知
      arr [1] = 1;
      //用循环实现计算每个月兔子的对数,从第三个月开始
      for(int i = 2;i < arr.length;i++){
          arr[i] = arr[i-2] + arr[i-1];
      }
        System.out.println("第二十个月兔子的对数是:" + arr[19]);

案例4:百钱白鸡
需求:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问各几何?

       //设公鸡x  母鸡y  小鸡z
      for (int x = 0;x <= 20;x++){
          for(int y = 0;y <= 33;y++){
              for(int z = 0;z <= 100;z++){
                  if(x + y + z == 100 && 5*x + 3*y + z/3 == 100 && z%3 == 0){
                      System.out.println("公鸡:" + x + " 母鸡:"+ y + " 小鸡:" + z);
                  }
              }
          }
      }

案例5:数组元素求和。
需求:有一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和,要求是:求和的元素个位和十位都不能是7,并且只能是偶数。

        int arr [] = {68,27,95,88,171,996,51,210};
        int sum = 0;
        //遍历数组
        for(int i = 0;i < arr.length;i++){
            if(arr[i] % 10 != 7 && arr[i] / 10 % 10 != 7 && arr[i] % 2 == 0){
                sum += arr[i];
            }
        }
        System.out.println(sum);

案例6:数组内容相同
需求:设计一个方法,用于比较两个数组的内容是否相同。
在这里插入图片描述

  public static void main(String[] args) {

        int[] arr = {11,2,5,6,8};
        int[] arr2 = {11,2,5,6,8};

        //调用方法
        boolean flag = compare(arr,arr2);
        System.out.println(flag);
    }

    //定义一个方法,用于比较两个数组是否相等
    /*
        两个明确:返回值类型:boolean
                参数 int[] arr  int[] arr2
    */
    public static boolean compare(int[] arr,int[] arr2){
        //先比较数组长度是否相等
        if(arr.length != arr2.length){
            return false;
        }
        //遍历数组,比较数组中的每一个元素
        for (int i = 0;i < arr.length;i++){
            if(arr[i] != arr2[i]){
                return false;
            }
        }
        return true;
    }

案例7:查找
需求:已知一个数组arr = {19,28,37,46,50};键盘录入一个数据,查找该数据在数组中的索引,并在控制台输出找到的索引值。
在这里插入图片描述

import java.util.Scanner;  //导包
public class First {
    public static void main(String[] args) {

        int[] arr = {19, 28, 37, 46, 50};
        Scanner sc = new Scanner(System.in);

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

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

        //遍历数组,获取数组中的每个元素
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == number) {
                index = i;
                break;
            }
        }
        System.out.println("index:" + index);

    }
}

用方法:

import java.util.Scanner;  //导包
public class First {
    public static void main(String[] args) {

        int[] arr = {19, 28, 37, 46, 50};
        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){
        int index = -1;   //定义一个索引变量,初始值为-1

        //遍历数组,获取数组中的每个元素
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == number) {
                index = i;
                break;
            }
        }
        return index;
    }
}

案例8:反转
需求:已知一个数组arr = {19,28,37,46,50};用程序实现把数组中的元素值交换,交换后的数组arr = {50,46,37,28,19};并在控制台输出交换后的数组元素。
在这里插入图片描述

public static void main(String[] args) {

        int[] arr = {19, 28, 37, 46, 50};
        //循环遍历数组
        for(int start = 0,end = arr.length - 1;start <= end;start++,end--){
            //交换变量
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
        }
        printArray(arr);
    }
    //定义一个方法,实现数组遍历
    public static void printArray(int[] arr){
        System.out.print("[");
        for(int i = 0;i < arr.length;i++){
            if(i == arr.length - 1){
                System.out.print(arr[i]);
            }else {
                System.out.print(arr[i] + ", ");
            }
        }
        System.out.println("]");
    }

案例6:评委打分
需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。选手的最后得分为:去掉一个最高分和一个最低分后的4个评委平均值(不考虑小数部分)。
在这里插入图片描述

import java.util.Scanner;  //导包
public class First {
    public static void main(String[] args) {

        int[] arr = new int[6];
        Scanner sc = new Scanner(System.in);
        //利用循环输出提示
        for(int i = 0;i < arr.length;i++){
            System.out.println("请输入第" + (i+1) + "个评委的打分:");
            arr[i] = sc.nextInt();
        }

        //调用方法
        printArray(arr);
        int max = getMax(arr);
        int min = getMin(arr);
        int sum = getSum(arr);

        //计算平均分
        int avg = (sum - min - max) / (arr.length - 2);
        System.out.println("选手最终得分是:" + avg);
    }
    
    //定义一个方法,实现数组遍历
    public static void printArray(int[] arr){
        System.out.print("[");
        for(int i = 0;i < arr.length;i++){
            if(i == arr.length - 1){
                System.out.print(arr[i]);
            }else {
                System.out.print(arr[i] + ", ");
            }
        }
        System.out.println("]");
    }
    //定义一个方法,实现获取最大值
    public static int getMax(int[] arr){
        int max = arr[0];
        for(int i = 1;i < arr.length;i++){
            if(arr[i] > max){
                max = arr[i];
            }
        }
        return max;
    }
    //定义一个方法,获取最小值
    public static int getMin(int[] arr){
        int min = arr[0];
        for(int i = 1;i < arr.length;i++){
            if(arr[i] > min){
                min = arr[i];
            }
        }
        return min;
    }
    //定义一个方法,求和
    public static int getSum(int[] arr){
        int sum = 0;
        for (int i = 0;i < arr.length;i++){
            sum += arr[i];
        }
        return sum;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值