JAVA萌新学习day6

一.方法重载与递归

从今天开始我们就要用IDEA啦,如果有需要IDEA的话可以评论哦!也可以自行百度下载。

package com.qf.java1904;

public class MethodTest {
    public static void main(String[] args) {
        System.out.println("方法重载的基本说明");

        //方法的调用
        add(10,20);

        add("Hello", "Hello");

        add("Hello");

        add(10,"World");

        printNumber(1000);
    }
    /*
    1.方法的重载:方法名相同,参数列表不同(参数类型,参数个数,不同类型惨的顺序不同,
    与返回值无关).
    好处:调用者不关心版本不同的方法实现,需要根据自己能提供的参数来九鼎调用哪一个方法.
    */

    //两个整数相加的方法
    public static void add(int a,int b){
        System.out.println("a+b=" + (a + b));
    }

    //两个字符串相加的方法
    public static void add(String a,String b) {
        System.out.println("a+b=" + a + b);
    }

    //输出a的值
    public static int add(String a){
        System.out.println("a:" + a);
        return 0;
    }

    public static void add(int a,String b) {
        System.out.println("a+b=" + a + b);
    }

/*
	2.方法的递归
*/

    //根据传入的参数,把他的值打印
    //方法的递归:方法在自己的内部调用自己
    public static void printNumber(int number) {
        System.out.println("number");

        add(50,100);

        if(number > 100) {
            printNumber(number - 100);
        }

        System.out.println(number + "调用结束");
    }
}

二.递归的使用演示
//递归的使用演示
public class RecursionDemo {
    public static void main(String[] args) {
        System.out.println("递归使用演示");
        //求1-100的和

        /*
        //这是用for循环的格式,思考如何转换成递归的方式
        int sum = 0;
        for(int i = 0 ; i < 100 ; i++){
            sum += 1;
        }
        */

        int total = total(100);

        System.out.println("1加到100的和是:" + total);

        int valueByNumber = valueByNumber(5);

        System.out.println("1-20的阶乘是:" + valueByNumber);
    }


    /*
    1.当使用递归调用方法的时候,前面的多次方法调用都没有正常
结束,每一次都在调用下一次的自己.
    2、只有最后一次调用当前方法自己的时候,方法才换范回准确结果
    3.一次把这个结果返回给前一次方法调用,指导返回给第一次的调用

    */
    public static int total(int number){

        if(number == 1){
            return 1;
        }
        else{
            //1到number的和就是number加上它前面所有数的和
            return total(number - 1) + number;
        }
    }


    //求个n!
    public static int valueByNumber(int a){

        if(a == 1){
            return 1;
        }
        else{
            return valueByNumber(a - 1)*a;
        }
    }
}
三.数组的基本使用
public class ArrayDemo {
    public static void main(String[] args) {

        System.out.println("数组的基本使用");

        /*
        数组的声明格式: 数据类型[] 数组名 比如:int[] a;
        */

        /*
        int为数组中可以保存的元素类型,中括号说明这个变量是个数组类型,后面
        的firstArray为数组的名字.
        本行代码,相当于声明了一个变量,变量类型是整形数组.
        */
        int[] firstArray;//仅声明没有初始化

        /*
        1.静态初始化
        */
        //数组声明的同时进行静态初始化
        //静态初始化的值用大括号括起来,用都好分隔开
        int[] secondArray = {1, 2, 3, 4, 5};
        //静态初始化时也可以使用new关键字
        int[] thirdArray = new int[]{1, 2, 3, 4, 5};
        //声明一个字符串数组,并静态初始化
        String[] strArray = {"a" ,"b", "c"};

        //数组是一种数据类型,不同于我们学过的8种基本类型,叫引用类型.
        /*
        2.动态初始化:
        数组声明的同时,只给定数组的大小,不提供元素的值,系统会给每一个
        元素一个初始值.我们会在后续代码给数组的元素赋值,这种为动态初始化.
        */
        int count = 10;
        int[] fourthArray = new int[count];

        /*
        数组元素的访问:
        数组元素通过下标的方式访问,下标的值从0到数组的大小减1这个范围.
        */

        fourthArray[0] = 1;//给数组下标为零的元素赋值为1
        fourthArray[1] = 2;//给数组下标为1的元素赋值为2
        //通过循环,使用下标给数组每一个元素赋值
        for (int i = 0; i < fourthArray.length; i++) {
            fourthArray[i] = i + 5;
        }
        //将数组中下标为3的值赋值给变量a(实际上是第4个值,因为数组从0开始)
        int a = fourthArray[3];
        //输出数组中每一个元素的值
        for (int i = 0; i < fourthArray.length; i++) {
            int number = fourthArray[i];

            System.out.println("下标为" + i + "的数组的值为:" + number);

        }
    }
}

四.数组的基本使用练习
import java.util.Scanner;

public class ArrayTest {
    public static void main(String[] args) {
        System.out.println("数组的基本使用练习");

        /*
        1.用户输入5个整数
        2.输出这5个数的最大值,最小值以及平均值
        */

        Scanner input = new Scanner(System.in);
        System.out.println("请输入5个整数,用空格分离");

        //第一步,创建一个可以保存5个元素的数组
        int[] numbers = new int[5];
        for(int i = 0 ; i < 5 ; i++){
            //从键盘获得用户每一次输入的值,保存到数组里
            numbers[i] = input.nextInt();
        }

        //打印数组所有元素的值
        for(int i = 0 ; i < numbers.length ; i++){
            System.out.print(numbers[i] + " ");
        }
        System.out.println();

        //查找数组中最大值,最小值.计算平均值.
        int maxnumber = 0;
        int minnumber = numbers[0];
        int sum = 0;
        for (int i = 0; i < numbers.length; i++) {
            //如果最大值比数组当前元素的值小
            if(maxnumber < numbers[i]){
                //将当前元素的值保存到最大值中
                maxnumber = numbers[i];
            }
            //如果最小值比数组当前元素的值小
            if(minnumber > numbers[i]){
                //将当前元素的值保存到最小值中
                minnumber = numbers[i];
            }
            //对数组元素求和
            sum += numbers[i];
        }
        System.out.println("最大值是:" + maxnumber);
        System.out.println("最小值是:" + minnumber);
        System.out.println("平均值是:" + 1.0*sum/numbers.length);

    }
}
五.数组的基本使用练习2
import java.util.Scanner;

public class ArrayTest2 {
    public static void main(String[] args) {
        System.out.println("数组的基本使用");
        /*
        1.用户输入10个整数,保存到数组中
        2.输出第一个元素出现的次数
        比如 1 2 4 2 2 4 1 4 4 2
        输出1出现2次
        */

        Scanner input =new Scanner(System.in);
        System.out.println("请输入10个整数,用空格分离");

        //第一步,创建一个可以保存10个元素的数组
        int[] numbers = new int[10];
        for (int i = 0; i < 10; i++) {
            //从键盘里获得每一次输入的值,并且保存在数组里
            numbers[i] = input.nextInt();
        }

        //打印元素里所有的值
        for (int i = 0; i < numbers.length; i++) {
            System.out.print(numbers[i] + " ");
        }
        System.out.println();

        //查找第一个元素出现的次数
        int times = 0;
        for (int i = 0; i < numbers.length; i++) {
            if(numbers[0] == numbers[i]){
                times++;
            }
        }
六.数组的基本使用练习3

这次稍微复杂了一点哦!

import java.util.Scanner;

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

        /*
        1.用户输入10个整数,保存到数组中
        2.输出每个元素出现的次数
        比如 1 2 4 2 2 4 1 4 4 2
        输出1出现2次,2出现4次,4出现4次
        */

        Scanner input =new Scanner(System.in);
        System.out.println("请输入10个整数,用空格分离");

        //第一步,创建一个可以保存10个元素的数组
        int[] arr = new int[10];
        for (int i = 0; i < 10; i++) {
            //从键盘里获得每一次输入的值,并且保存在数组里
            arr[i] = input.nextInt();
        }

        //打印元素里所有的值
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();

        //设置一个新的数组
        int[] arr2 = new int[arr.length];
        //设置一个标记
        boolean flag;

        //
        for (int i = 0; i < arr.length; i++) {
            flag = true;
            for (int j = 0; j < arr.length; j++) {
                if (arr[i] == arr2[j]) {
                    flag = false;
                }
            }
            if (flag) {
                arr2[i] = arr[i];
                int count2 = 0;
                for (int j = i; j < arr.length; j++) {
                    if (arr[i] == arr[j]) {
                        count2++;
                    }
                }
                System.out.println(arr[i] + "出现了" + count2 + "次");
            }
        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值