java基础篇之4----------中短流程控制语句、数组的内存分析

上期作业:
1: 用二分法求一已排序数组中的指定数值

public static int binary(int[] a, int key) { // 传入一个数组和一个要查找的数
        int low = 0;     //定义一个头变量
        int high = a.length - 1; // 定义一个尾变量
        int mid = (low + high) / 2;// 定义一个中间变量
        int i;// 用于接收目标值得下标
        if (key < a[mid]) {   // 如果要找的值在前半部分
            while (key != a[low]) { //遍历前半部分数组
                low++;
                if (low == mid) {
                    return -1;
                }
            }
            return low;
        } else {
            while (key != a[mid]) {   // 遍历后半数组;
                mid++;
                if (mid == a.length) {
                    return -1;
                }
            }
            return mid;
        }
    }

2:求一个数组的连续子数组最大和,并输出区间下标

public static void maxSum(int[] a) {
        //求一个数组的连续子数组最大和,并输出区间下标
        int maxSum = 0;//  声明一个变量储存最大值
        int nowSum ;//声明一个变量储存当前的和
        int hand=0;
        int foot=0;//定义最大和子数组的头尾下标
        for (int i = 0; i < a.length; i++) {  //此循环子数组
            for (int j = i; j < a.length; j++) {
                nowSum = 0; // 每一次就子数组的和之前必须将nowSum中储存的值清零;
                for (int k = i; k <=j; k++) {
                    nowSum += a[k];//计算每个子数组的和;
                    if (nowSum>maxSum) {
                        maxSum=nowSum; //如果当前计算的和大于最大值,则将当前计算的和赋值给最大值
                        hand=i;
                        foot=j;
                    }
                }
            }
        }
        System.out.println("最大数组和:"+maxSum+"**********子数组区间"+hand +"~"+ foot);
    }

3:封装一个方法交换两个变量的值
此方法不能实现。因为虽然把值传进去了,但是只是方法内部的变量的值改变了,方法内部变量的做运动范围只是方法内部,这个问题考到变量作用范围的问题;
4: 倒置数组:

public static int[] convetArray( int[] a) {
        int [] b=new int[a.length];
        for (int i=0,j=a.length-1;i<a.length;i++,j--) {
            b[i]=a[j];
        }
        return b;
   }

1: 中断流程控制语句
(1) break:用于退出循环语句
赐个例子经常用于swith语句中,用于结束语句;

while (years<=100&& balance <goal) {
	balance +=payment;
	double interst =balance * interstRate/100;
	if(balance<goal)  break ;// 如果满足陈、语句中的条件,则执行break语句,直接退出循环
	year ++;
}

(2) continue 语句: 中断正常的控制流程,直接跳到循环首部;

for ( count =1 ; count<=100;count++) {
	n= in.nextInt();
	if( n<0) continue ;    //  满足n<0 条件,执行continue语句,跳转到count++ 语句
} 

2 数组: 数组是一种数据结构, 用于储存一类型的数值的集合,通过按下表来访问每一个数值;
(1)数组声明:
int []a =new int[5 //这是声明了一个长度为5 名字为a的int型数组;
( 2 ) 数组初始化有三个 动态 静态 默认:
默认初始化都为0;boolean 数组的元素初始化为false; 对象数组则初始化为null;

//数组的赋值 1   逐个赋值   动态初始化,通过下标
		arr0[0]=100;
		arr0[1]=99;
		arr0[2]=88;		
 //创建引用类型一维数组   静态初始化
		peson[] arr2= {
				new peson(1001,"王一“);
				new peson(1002,"王二"),
				new peson(1003,"王三   };

(3)数组的内存分析:
int [] array1=new int[5];
int [] array2= array1; //数组引用之间的赋值
int [] array3 ={1,2,3, 4,5,6};
其内存分析如图:在这里插入图片描述

	(4)数组的输出方法:Arrays.toString (int array);  foreach(0)循环,或者直接用下标输出;
//   用foreach 语句输出:  只能输出,不能修改里面的值;
	int [] array=new int [5];//定义一个容量为5 的数组;
	for(int  i : array) {
	System.out.println (i);
}
System.out.println(array[1]);  // 输出下标为1的数组数据。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的纺织品企业财务管理系统,源码+数据库+毕业论文+视频演示 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对纺织品企业财务信息管理的提升,也为了对纺织品企业财务信息进行更好的维护,纺织品企业财务管理系统的出现就变得水到渠成不可缺少。通过对纺织品企业财务管理系统的开发,不仅仅可以学以致用,让学到的知识变成成果出现,也强化了知识记忆,扩大了知识储备,是提升自我的一种很好的方法。通过具体的开发,对整个软件开发的过程熟练掌握,不论是前期的设计,还是后续的编码测试,都有了很深刻的认知。 纺织品企业财务管理系统通过MySQL数据库与Spring Boot框架进行开发,纺织品企业财务管理系统能够实现对财务人员,员工,收费信息,支出信息,薪资信息,留言信息,报销信息等信息的管理。 通过纺织品企业财务管理系统对相关信息的处理,让信息处理变的更加的系统,更加的规范,这是一个必然的结果。已经处理好的信息,不管是用来查找,还是分析,在效率上都会成倍的提高,让计算机变得更加符合生产需要,变成人们不可缺少的一种信息处理工具,实现了绿色办公,节省社会资源,为环境保护也做了力所能及的贡献。 关键字:纺织品企业财务管理系统,薪资信息,报销信息;SpringBoot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值