Java基础复习第四天

增强for循环是从 jdk5引入的。

##方法
什么是方法

方法的重载

结束语句 break 和 continue

1、break在任何循环语句的主题部分,均可用break控制循环的流程。break用于强行退出循环,
不执行循环中剩余的语句。(break语句也在switch语句中使用)

2、contiune 语句用在循环语句体重,用于终止某次循环过程,即跳过循环中尚未执行的语句。
接着进行下一次是否执行循环的判定。

3、关于goto关键字
(1)goto关键字很早就在程序设计语言中出现,尽管goto仍是Java的一个保留字,
但并未在语言中得到正式使用;java没有goto,然而,在break和continue这两个
关键字的身上,我们仍然能看出一些goto的影子—带标签的break和continue。

(2)“标签”是指后面跟一个冒号的标识符,例如: label;
(3)对于Java 来说唯一用到标签的地方是在循环语句之前,而在循环之前设置标签的唯一
理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,
但若随同标签使用,它们就会中断到存在标签的地方。

//打印101~150之间所有的质数
//指数 是指在大于1的自然数中,除了1和它本身以外不在有其他因数的自然数。
//打印三角形 五行

    for (int i = 0; i < 5; i++) {
        for (int y = 5;y>=i;y--){
            System.out.print(" ");
        }
        for (int z = 0;z<=i;z++){
            System.out.print("*");
        }
        for (int k = 0;k<i;k++){
            System.out.print("*");
        }
        System.out.println();
    }

Java值传递 和 引用传递

####值传递:

在方法被调用时,实参通过形参把它的内容副本传入方法内部,
此时形参接收到的内容是实参值的一个拷贝,因此在方法内对形参的任何操作,
都仅仅是对这个副本的操作,不影响原始值的内容。

####引用传递:
”引用”也就是指向真实内容的地址值,在方法调用时,
实参的地址通过方法调用被传递给相应的形参,在方法体内,
形参和实参指向同一块内存地址,对形参的操作会影响的真实内容。

引用传递本质上就是值传递,将引用变量的值传递给形参,因为引用变量的值存放的是地址值,
所以当地址值传递给形参后,形参和实参指向同一块内存区域。

Java它是值传递!!!

参考链接:https://www.cnblogs.com/wugongzi/p/11297638.html

阶乘

2! 2 * 1
3! 3 * 2 * 1
4! 4 * 3 * 2 *1
5! 5 * 4 * 3 * 2 * 1

public class Demo05 {
public static void main(String[] args) {
int factorial = factorial(5);
System.out.println(factorial);
}

public static  int factorial(int i){
    if (i ==1){
        return 1;
    }
    int factorial = factorial(i - 1);
    return i*factorial;
}

}

命令行传递参数

注意: 编译的时候不用带上包名。
但是运行的时候,要加上包名。

![](https://kuangstudy.oss-cn-beijing.aliyuncs.com/bbs/2021/08/20/kuangstudy6d47a2c9-01e3-4a14-a138-0cb91a5f665b.png)

数组

1、数组概述

2、数组声明创建

3、数组使用

4、多维数组

5、Arrays类

6、稀疏数组

数组的定义

(1)数组是相同类型的有序集合。
(2)数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
(3)其中,每一个数据称作一个数组元素,每一个数组元素可以通过一个下标来访问它们。

注意:下标是从 0 开始的。

数组声明创建

数组的四个基本特点

(1)其长度是确定的。数组一旦被创建,它的大小就是不可改变的。
(2)其元素必须是相同类型,不允许出现混合类型。
(3)数组中的元素可以是任何类型,包括基本类型和引用类型
(4)数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
(5)数组本身就是对象,Java中对象是在堆中的。因此数组无论保存原始类型还是其他对象类型

(6)数组对象本身是在堆中的。

获取数组的长度

arr.length

常见异常

下标越界异常
java.lang.ArrayIndexOutOfBoundsException: 5

只要是new 都是存放在堆中的。

声明数组内存图

数组使用

(1)For-Each 循环
(2)数组作方法入参
(3)数组作返回值

//静态初始化
    int[] arr = {1,2,3,6,7};

    //动态初始化  有默认初始化
    int[] arr02 = new int[5];
    arr02[2] = 10;

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

    //计算所有arr 元素的 和
    int sum = 0;
    for (int i = 0; i < arr.length; i++) {
        sum +=arr[i];
    }
    System.out.println("和:" + sum);

    //查找 arr 中最大元素
    int max = 0;
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] > max){
            max = arr[i];
        }
    }
    System.out.println("最大为:" + max);

    // idea 快捷键   arr.for
    for (int i : arr) {
        System.out.println(i);
    }

    //调用打印数组方法
    text(arr);

    flip(arr);
}
//数组作为方法参数
public static void text(int[] i){
    for (int i1 : i) {
        System.out.print(i1 + " ");
    }
}

// 2 4 5 6
// 6 5 4 2

//数组反转
//反转
public static void flip(int[] y){

    for (int i = 0;i<y.length;i++){
        if (i<=y.length/2){
             int a = y[i];
             y[i] = y[y.length-1-i];
            y[y.length-1-i] = a;
        }
    }
    System.out.println();
    for (int i : y) {
        System.out.print(i + " ");
    }
}

二维数组

//静态赋值
int[][] arr = {{1,2},{2,4},{5,6}};

    //动态赋值
    int[][] arr02 = new int[3][2];
    
    for (int i = 0;i<arr.length;i++){
        for (int y = 0;y<arr[i].length;y++){
            System.out.println(arr[i][y]);
        }
    }

小练习
//写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现。
public class Demo06 {
public static void main(String[] args) {

    while (true){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要计算的第一个数字");
        double v = 0;
        String next = "";
        double v1 = 0;
        if (scanner.hasNextDouble()){
             v = scanner.nextDouble();
        }
        System.out.println("请输入运算符号:+,-,*,/,%");
        if (scanner.hasNext()){
             next = scanner.next();
        }
        System.out.println("请输入要计算的第二个数字");
        if (scanner.hasNextDouble()){
             v1 = scanner.nextDouble();
        }
        double calculation = calculation(v, next, v1);
        System.out.println("计算结果为:"+calculation);
        System.out.println("--------------");
    }
}

public static double calculation(double i,String s,double y){
    double sum = 0;
    switch (s){
        case "+":
             sum  = i+y;
            break;
        case "-":
            sum  = i-y;
            break;
        case "*":
            sum  = i*y;
            break;
        case "/":
            sum  = i/y;
            break;
        case "%":
            sum  = i%y;
            break;
        default:
            System.out.println("输入有误请重新输入");
            sum  = 0;
            break;
    }
    return  sum;
}

}

总结

愿中国青年都摆脱冷气,只是向上走,不必听自暴自弃流的话,能做事的做事,能发声的发声,有一份热,发一分光,
就令萤火一般。也可以在黑暗里发一点光,不必等候炬火,此后如尽没有炬火。我便是唯一的光。
–鲁迅
本片参考借鉴于: kuangstudy

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值