day04

import java.util.Random;
Random r= new Random();
int num= r.nextInt(100); //产生的数据在0到100之间,包括0,不包括100,其实里面的100是随机的。
2.
for(int i=0;i<10;i++){
if(i%2==0){
continue;
}
System.out.println(i);
}
输出结果为1,3,5,7,9
continue:跳过循环体中的剩余语句而进行下一次循环

3.嵌套中的循环:
嵌套中的循环,一般多行多列的时候,外层控制行,内层控制列;
执行规则:外层循环走一次,内层的走所有;
建议:循环层数越少越好,能用一层解决的尽量用一层,如果你写的程序必须使用到三层以上的循环,要考虑是不是你的程序设计有问题
break:只能跳出一层循环。
4.
数组初始化:
动态初始化:在初始化的时候,只定义了数组的长度,通过系统来决定数组的初始化值;int [] arr2=new int[3];
静态初始化:在初始化的时候,在初始化的时候,指定了每一个初始化的值,由系统决定数组的长度; int [] arr3= new int[]{1,3,5,7};
5
arr={1,2,3};错的 arr=new int [] {1,2,3}; 对的
6
栈:存诸的是局部变量;局部变量就是定义在方法体中的变量;使用完毕后立即释放。
7.
堆:存储的是new出来的对象;每一个对象都是有地址值的;每一个对象都是有默认值的;
byte short int long 默认值为0
float double 是0.0
char 是 ‘\u0000’
boolean false
引用数据类型 null
使用完毕后,由垃圾回收器在空闲的时候回收

  1. 身份证的最后一位验证
    倒数第二位代表性别
    7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
    省份证前17位 对应相乘,然后相加,用和%11
    0 1 2 3 4 5 6 7 8 9 10
    1 0 x 9 8 7 6 5 4 3 2

对应程序
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0;
//用来存放身份证前17位
int[] cards=new int[17];
//所需验证的系数
int[] data={7 ,9 ,10, 5 ,8 ,4 ,2 ,1 ,6 ,3, 7 ,9, 10, 5, 8 ,4 ,2};
int[] date1=new int[17];
char []code ={‘1’,‘0’,‘x’,‘9’,‘8’,‘7’,‘6’,‘5’,‘4’,‘3’,‘2’};
Scanner sc=new Scanner(System.in);
for(int i=0;i<cards.length;i++){
System.out.println(“请输入身份证的第”+(i+1)+“位”);
cards[i]=sc.nextInt();
}
for(int i=0;i<cards.length;i++){
sum+=cards[i]*data[i];
}
System.out.println(“最后一位:”+code[sum%11]);

}

9 异常
数组下标越界异常;ArrayIndexOutOfBoundsException
空指针异常:NullPointerException
异常机制:try-------catch
10 数组的复制
Arrays.copyof(src,length), 要在JDK1,6版本以上使用
System.arraycopy(src, srcPos, dest, destPos, length);//
src原数组;srcPos:原数组的开始的复制的位置;dest:目标数组;destPos:目标数组的开始复制的位置;length:复制的 长度
javaAPI提供的,底层是用c++写的,所以速度非常快,比for()循环实现数组的拷贝效率要高,推荐使用。

11.冒泡排序
public static void main(String[] args) {
// TODO Auto-generated method stub
int []a={1,3,2,55,23,4};
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
//两种循环和Arrays.toString(a) 三种方法对数组的输出
System.out.print(“第”+(i+1)+“轮”+" “);
//System.out.println(Arrays.toString(a));
for(int k:a){
System.out.print(k+” “);
}
System.out.println();
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+” “);
}
}
优化后的冒泡排序:
public static void main(String[] args) {
// TODO Auto-generated method stub
int []a={1,3,2,55,23,4};
boolean isSorted;
for(int i=0;i<a.length-1;i++){
isSorted=true;//假设剩下的元素已经全部排序好了
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
//一旦进行数组元素的交换,那么剩余的元素的元素是没有进行排序好的
isSorted=false
}
}
if(isSorted){
break;
}
System.out.print(“第”+(i+1)+“轮”+” “);
//System.out.println(Arrays.toString(a));
for(int k:a){
System.out.print(k+” “);
}
System.out.println();
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+” ");
}
}

}
12. 方法:
概念:封装了一段特定独立的业务逻辑的功能;
方法尽可能是独立的,让一个方法去干一件事;
方法也是可以被反复的重复去调用;
较少代码的重复,有利于代码的后期维护;
同时能够减少开发团队的成本,提高效率。
2.语法结构;
修饰词 返回值类型 方法名 (参数列表){
方法体;//具体的业务逻辑功能
return 返回值;
}
修饰词:public static
返回值类型:用于限定返回值的具体的类型
方法名:为了我们调用的时候方便,起的名字
参数列表:(参数类型 参数名,参数类型 参数名2…)
参数类型:用于限定调用方法时传入传入的数据类型
参数名:用于接收调用方法时传入的数据的变量
3. 方法的使用
明确方法是否有返回值;方法是否有参数列表;
方法是否有参数列表
4. 方法的调用
单独去调用
输出调用,有意义的
赋值调用
return; //编译错误,必须返回一个值
return “1234”; //编译错误,返回值的类型必须进行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值