java基础练习题

java方法参数的传递的练习

题目1

在这里插入图片描述

题目展示

package com_itheima.literal;

public class test {
    public static void main(String[] args) {
        int[] ages={12,20,30,40};
        printArray(ages);
        System.out.println("----------------");;
        int[] numbers={1,2,3,9,12};
        printArray(numbers);

        int[] numbers1={};
        printArray(numbers1);


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

//          排除Null的情况
          if (arr!=null&&arr.length>0)
          {
              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.print(i==arr.length-1?arr[i]:arr[i]+", ");

              }
          }

          System.out.println("]");
      }

}

题目二:写一个与index相同的算法

在这里插入图片描述

题目展示

package com_itheima.literal;

public class test {
    public static void main(String[] args) {
        int[] arr={11,22,33,66,87,19};
        int index=searchIndex(arr,17);
        System.out.println("你查询的数据的索引是:"+index);

      }
      public static int searchIndex(int[] arr,int data){
//        此案例与index相同
          for(int i=0;i<arr.length;i++)
          {
              if (arr[i]==data)
              {
                  return i;
              }
          }
          return -1;

      }

}

题目三:写一个compare比较函数

在这里插入图片描述

题目展示

package com_itheima.literal;

public class test {
    public static void main(String[] args) {
        int[] arr1={12,120,30};
        int[] arr2={12,10,30};
        System.out.println(compart(arr1,arr2));
      }

//      1.定义一个方法:参数:接受2个整形数组,返回值类型:布尔类型
      public static boolean compart(int[] arr1,int[] arr2){
//        2,判断2个数组的内容是一样的吗
          if (arr1.length== arr2.length)
          {
              for (int i=0;i<arr1.length;i++)
              {
                  if (arr1[i]!=arr2[i])
                  {
                      return false;
                  }
              }
              return true;//是一样的
          }
          else {
              return false;
          }
      }
}

2 方法重载

在这里插入图片描述

代码展示

package com_itheima.literal;

public class test {
    public static void main(String[] args) {
        fire();
        fire("岛国");
        fire("岛国",1000);
      }


      public static void fire(){
          System.out.println("默认发射一枚武器给米国。。。");
      }

        public static void fire(String location){
            System.out.println("默认发射一枚武器给米国"+location);
        }
    public static void fire(String location,int number){
        System.out.println("默认发射"+number+"一枚武器给"+location);
    }
}

题目二:return关键字:跳出方法

在这里插入图片描述

案例

第一道题

在这里插入图片描述

package com_itheima.literal;

import java.util.Scanner;

public class test {
    public static void main(String[] args) {

//        目标:完成买飞机票的价格计算
//        1,让用户输入机票原价,月份,仓位类型
        Scanner sc=new Scanner(System.in);
        System.out.println("请您输入机票原价:");
        double money=sc.nextDouble();

        System.out.println("请您输入机票的月份(1-12): ");
        int month=sc.nextInt();

        System.out.println("请您选择仓位类型");
        String type=sc.next();

//        4.调用方法,统计结果
        System.out.println("机票优惠后的价格是:"+calc(money,month,type));
    }


//      2.定义方法接受信息,统计优惠后的价格返回
    public static double calc(double money,int month,String type){
//        3.判断用户选择的信息情况
        if (month>=5&&money<=10)
        {
//            旺季
            switch (type)
            {
                case "头等舱":
                    money*=0.9;
                    break;
                case "经济舱":
                    money*=0.85;
                    break;
                default:
                    System.out.println("您输入的仓位类型有误");
                    money=-1;//表示当前无法计算价格!
            }
        }
        else if (month==11||month==12||month>=1&&month<4)
        {
//            淡季
            switch (type)
            {
                case "头等舱":
                    money*=0.7;
                    break;
                case "经济舱":
                    money*=0.65;
                    break;
                default:
                    System.out.println("您输入的仓位类型有误");
                    money=-1;//表示当前无法计算价格!
            }
        }
        else {
            System.out.println("对不起,您输入的月份有问题");
            money=-1;
        }
        return money;
     }
}

第二道题

在这里插入图片描述

代码展示

package com_itheima.literal;


public class test {
    public static void main(String[] args) {
//        1. 定义一个循环,找到101-200之间的全部数据
        for (int i=101;i<=200;i++)
        {
//            2.定义一个    信号位:标记
            boolean flag=true;//    3.一开始认为当前数据是素数
//            4.判断当前遍历的这个数据是否是素数
            for (int j=2;j<i/2;j++)
            {
                if (i%j==0)
                {
                    flag=false;
                    break;
                }
            }
//            5.根据判定的结果选择是否输出这个数据,是素数则输出
            if (flag)
            {
                System.out.print(i+"\t");
            }
        }
    }
}

第三道题:开发验证码

在这里插入图片描述

package com_itheima.literal;


import java.util.Random;

public class test {
    public static void main(String[] args) {

//        4.调用获取验证码的方法得到一个随机的验证码
        String code=createCode(5);
        System.out.println("随机验证码:"+code);
    }

//    1. 定义一个方法返回一个随机验证码:是否需要返回值类型申明? String  是否需要申请形参:int n
    public static String createCode(int n)
    {
//        3.定义一个字符串变量纪录生成的随机字符
        String code="";
        Random r=new Random();
//      2.定义一个for循环,循环n次,依次生成随机字符
        for(int i=0;i<n;i++)
        {
//        3.生成一个随机字符:英文大写  小写  数字(0 1 2)
            int type=r.nextInt(3);//0 1 2
            switch (type)
            {
                case 0:
//                    大写字符(A 65 - Z 65+25)  (0-25)+65
                    char ch=(char)(r.nextInt(26)+65);
                    code+=ch;
                    break;
                case 1:
//                    小写字符(a 97-z 97+25)    (0-25)+97
                    char ch1=(char)(r.nextInt(26)+97);
                    code+=ch1;
                    break;
                case 2:
//                    数字字符
                    code+=r.nextInt(10);
                    break;
            }
        }
        return code;
    }
}

第四道题:数组的复制

在这里插入图片描述

代码展示

package com_itheima.literal;


import java.util.Random;

public class test {
    public static void main(String[] args) {
        int[] arr1={11,22,33,44};
//        int[] arr2=arr1;//没有完成了数组复制
        int[] arr2=new int[arr1.length];

        copy(arr1,arr2);

        printArray(arr1);
        printArray(arr2);

    }

//    1. 定义一个方法返回一个随机验证码:是否需要返回值类型申明? String  是否需要申请形参:int n
    public static void printArray(int[] arr)
    {
        System.out.print("[");
        for (int i=0;i<arr.length;i++)
        {
            System.out.print(i==arr.length-1?arr[i]:arr[i]+", ");
        }
        System.out.println("]");
    }

    public static void copy(int[] arr1,int[] arr2)
    {
//        正式完成元素的复制
        for (int i=0;i< arr1.length;i++)
        {
            arr2[i]=arr1[i];
        }
    }
}

第五道题:评委打分

在这里插入图片描述

代码展示

package com_itheima.literal;


import java.util.Scanner;

public class test {
    public static void main(String[] args) {
//        1.定义一个动态初始化的数组,用于后期录入6个评委的分数
        int[] scores=new int[6];

//        2.录入6个评委的分数
        Scanner sc=new Scanner(System.in);
        for (int i=0;i< scores.length;i++)
        {
            System.out.println("请输入第"+(i+1)+"个评委的打分: ");
            int score=sc.nextInt();
//            3.把这个分数存入道数组的对应位置处
            scores[i]=score;
        }
//        3.遍历数组中的每个数据,找出最大值,最小值,,总分
//        int max=scores[0],mix=scores[0],sum=0;
        int max=scores[0];
        int min=scores[0];
        int sum=0;
        for(int i=0;i< scores.length;i++)
        {
            if (scores[i]>max)
            {
//                替换最大变量存储的数据
                max=scores[i];

            }

            if (scores[i]<min)
            {
//                替换最小值变量存储的数据
                min=scores[i];
            }

//            统计总分
            sum+=scores[i];
        }

        System.out.println("最高分是:"+max);
        System.out.println("最低分是:"+min);
//        4.统计平均分即可
        double result=(sum-max-min)*1.0/(scores.length-2);
        System.out.println("选手最终的分是: "+result);

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值