Java基础知识练习

1.减肥计划if版

  • 代码编写:

一、减肥计划if版本
//创建对象
Scanner input = new Scanner(System.in);
System.out.println("请输入一个星期数:");
int week = input.nextInt();
 if (week<1||week>7){
            System.out.println("输入错误!请输入一个1-7的整数");
        }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("今天是周日,吃一顿放纵餐!");
        }
  • 代码运行测试:

    • 输出一个边界数据测试

      • 输出一个报错数据测试

2.减肥计划switch版

  • 代码编写:

//创建对象
Scanner input = new Scanner(System.in);
System.out.println("请输入一个星期数:");
int week = input.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-7的整数");

        }
  • 代码运行测试:

  • 输出一个边界数据测试

  • 输出一个报错数据测试

3.逢七过

  •  代码编写:

 //逢七过
         //i%7==0:代表是7的倍数的数字
        //i%10==7:代表是代表个位数是7的数字
        //i/7%10==7:代表是代表十位数是7的数字
        for(int i=1;i<100;i++){
            if (i/10%10==7||i%10==7||i%7==0){
                System.out.println(i);

            }
        }
  • 代码运行测试

4.不死神兔

  • 程序运行过程:这道题的原理和斐波那契数列同理,数据是1,1,2,3,5,8,13....,规律是第三个数是前面两个数之和,以此类推,所以循环内部执行过程 是:arry[2]=arry[0]+arry[1]、    arry[3]=arry[1]+arry[2]、    arry[4]=arry[2]+arry[3]
  • 代码编写:

//不死神兔
//1,1,2,3,5,8,13....
        int[] arry = new int[20];
             arry[0] = 1;
             arry[1] = 1;
        for (int i = 2; i < arry.length; i++) {
        [i] = arry[i - 2] + arry[i - 1];

        }
        System.out.println("第二十个月兔子的对数是:"+arry[19]);
  • 代码运行测试:

5.百钱百鸡

  • 代码编写:

//百钱百鸡:100文钱买100只鸡
 //公鸡:5、母鸡:3、3只小鸡:1
int count=0;
        for(int x=0;x<=20;x++){
            for(int y=0;y<=33;y++){
                 int z=100-x-y;
                 if(z%3==0 && 5*x+3*y+z/3==100) {
                     count += 1;
                     System.out.println(x + "," + y + "," + z);

                 }
            }
        }
        System.out.println("总共有"+count+"种买法");
  • 程序运行结果:

6.数组元素内容相同

  • 主函数:用于数组初始化定义、方法调用

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

  • 代码运行测试:

    • 利用两个不同的数组测试

      • 利用两个相同的数组测试

  • 代码编写:
public static void main(String[] args) {
        //数组内容相同
        int[] arr1={11,22,33,44};
        int[] arr2={11,22,33,44};
        //调用方法,用变量接受
        boolean result=compare(arr1,arr2);
        System.out.println(result);


    }
    //定义一个方法,用于比较两个数组的内容是否相同
    public static boolean compare(int[] arr1,int[] arr2) {
        if (arr1.length != arr2.length) {
            return false;
        }
        for (int i = 0; i < arr1.length; i++) {
            if (arr1[i] != arr2[i]) {
                return false;
            }
        }
        return true;
    }

7.数组元素查找

  • 代码运行测试:

    • 输出一个边界数据测试

      • 输出一个报错数据测试
  • 代码编写:

public static void main(String[] args) {
        //数组查找
        int[] arry={19,28,37,46,50};
        //键盘录入要查找的数据,用一个变量接受
        Scanner input=new Scanner(System.in);
        System.out.println("请输入要查找的数据:");
        int number=input.nextInt();
        //定义一个存储索引的遍历
         int flag=-1;
        for(int i=0;i<arry.length;i++){
            if(arry[i]==number){
                flag=i;
                break;
            }
        }
       
        System.out.println("index:"+flag);
    }
  • 利用方法实现:

  • 主函数:用于数组初始化定义、方法调用

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

  • 代码运行测试:

  • 代码编写:
public static void main(String[] args) {
        //数组查找
        //定义一个数组,用静态初始化完成数组元素的初始化
        int[] arry = {19, 28, 37, 46, 50};
        //键盘录入要查找的数据,用一个变量接受
        Scanner input = new Scanner(System.in);
        System.out.println("请输入要查找的数据:");
        int number = input.nextInt();
        //调用方法
        int flag=getIndex(arry,number);
        System.out.println("index:" + flag);
    }

    public static int getIndex(int[] arry, int number) {
        int flag = -1;
        for (int i = 0; i < arry.length; i++) {
            if (arry[i] == number) {
                flag = i;
                break;
            }
        }
        //返回索引值
        return flag;
    }

8.数组元素求和

  • 代码运行测试:

  • 代码编写:

public static void main(String[] args) {
    //数组元素求和
        int[] arrs={68,27,95,88,171,996,51,210};
        int sum=0;
        for(int x=0;x<arrs.length;x++){
        if(arrs[x]%2==0 &&  arrs[x]%10!=7 && arrs[x]/10%10!=7){
               sum+=arrs[x];
              System.out.println(arrs[x]);
            }
         }
            System.out.println("累加和为:"+sum);
    }

9.数组元素反转

  •  在主函数里实现数组反转

  • 在方法中完成数组遍历输出

  • 程序运行结果:

  • 代码编写(完整版):

  • 我们定义一个方法实现功能之后,千万不要忘记在主函数调用这个方法噢,不然控制台是不会显示数据的
public static void main(String[] args) {
    //数组元素反转
     //定义一个数组,用静态初始化完成数组元素的初始化
     int[] arr={19,28,37,46,50};

    //for循环遍历数组,定义两个索引变量,判断条件是开始索引小于等于结束索引
    for(int start=0,end=arr.length-1;start<=end;start++,end--){
        int tempt=arr[start];
        arr[start]=arr[end];
        arr[end]=tempt;
     }
       //调用方法
     printArray(arr);

}

     //------定义一个方法输出数组倒序的元素----------
 public static void printArray(int[] arr){
      System.out.print("输出反转后的数组:");
      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("]");

 }
  • 定义一个数组反转的方法

    • 如果觉得主函数里的代码太多了,我们也可以再定义一个让方法,把for循环拿进去

代码编写(完整版):

 public static void main(String[] args) {
    //数组元素反转
       //定义一个数组,用静态初始化完成数组元素的初始化
        int[] arr={19,28,37,46,50};
        //调用数组反转的方法
        reverse(arr);

        //调用遍历数组输出的方法
        printArray(arr);
    }

 public static void reverse(int[] arr) {
     //for循环遍历数组,定义两个索引变量,判断条件是开始索引小于等于结束索引
     for(int start=0,end=arr.length-1;start<=end;start++,end--){
            /*end=arr.length-1是因为数组的索引是从0开始的,
            所以数组的长度-1才是我们要获取到的数组最后一个元素的索引值*/
         // 变量交换
         int tempt=arr[start];
         arr[start]=arr[end];
         arr[end]=tempt;
     }

 }

       
 //------定义一个方法输出数组倒序的元素----------
       
 public static void printArray(int[] arr){
       System.out.print("输出反转后的数组:");
       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("]");

 }

10.评委打分

  • 定义数组,动态初始化数组元素

    • 这是第一种用输出语句实现存储评委打的分数,但是语句太多了,所以我们用for循环改进一下

  •  用for循环实现手动录入数据

  • 定义一个输出方法,并且调用,我们先来测试一下代码,是否能正确输出数组

    • 下面是代码的运行测试

      • 定义两个方法,分别获取分数的最大值和最小值,这个在我之前写的数组的基础里有说到,需要的可以去看一下这篇文章http://t.csdnimg.cn/RAn2d

        • 再定义一个用来实现数组求和的方法

          • 最后,我们再来看一下主函数里面按照计算规则得到平均分,和所有方法的调用

  • 代码运行测试:

  • 代码编写(完整版):

public static void main(String[] args) {
    //评委打分
        //定义一个数组,用动态初始化完成数组元素的初始化、长度为6
        int[] arr=new int[6];
        //创建对象,完成键盘录入评委分数
        Scanner input=new Scanner(System.in);
        //接受对象,存储6个评委打的分数
        for(int i=0;i<arr.length;i++){
            System.out.println("请输入第"+(i+1)+"个评委的打分:");
            arr[i]=input.nextInt();
        }
        //调用获取到最大值的方法
        int max=getMax(arr);

        //调用获取到最小值的方法
        int min=getMin(arr);

        //调用数组元素求和的方法
        int sum=getSum(arr);

        //按照计算规则计算得到平均分
        int avg=(sum-max-min)/(arr.length-2);
        System.out.println("选手的最终得分是:"+avg);
        //调用遍历数组输出的方法
        printArray(arr);
    }

        //------这一个方法是用来获取到数组中最高分----------
        public static int getMax(int[] arr){
               int max=arr[0];
               for(int i=0;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=0;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;
    }

    //------这一个方法是用来遍历数组,输出数组元素----------
        public static void printArray(int[] arr){
          System.out.print("所有评委的打分结果是:");
          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("]");

        }


}
  •  当然像我这种懒人不想一个一个手动去输入随机分数,也可以用随机数来随机获取评委的随机值

这个应该是从更新Java基础里代码最多的一道题目啦!

11.结语

        Java基础专栏到这里更一半了,这篇是对于之前讲的所有知识点的综合应用,从下一章节开始会稍稍的上一些难度,会给大家详细讲解java中面向对象的原理以及类和对象的引用,Java基础的小项目,小编会持续为大家带来更多知识点和优质代码,如果你喜欢的话,记得关注噢!!!

  • 28
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值