笔记5.8

5.8
while循环语句和do-while语句:
格式:
基本格式:
while(判断条件语句){
循环体语句;
}
扩展格式 :
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}

int num = (int)(Math.random()*1000);
Scanner sc =new Scanner(System.in);
System.out.println(“输入数字”);
int guess ;
do{
guess=sc.nextInt();
if(guess<num){
System.out.println(“猜小了”);
}else if (guess>num){
System.out.println(“猜大了”);
}
}while(guess !=num);
if(guess==num){
System.out.println(“猜对了”);}

数组:

数组是存储多个变量的东西,且多个变量的数据类型是一样的。数组既可以存储基本数据类型,也可以存储引用数据类型。
格式:数据类型【】 数组名;
数组的初始化(先初始化,后使用):数组中的数组元素进行分配内存空 间,并且为每一个数组元素进行赋值。
1.动态初始化:初始化的时候,只指定数组的长度,由系统来为数组分配初始值;
2.静态初始化:初始化的时候,指定了每一个数组元素的初始化值,由系统决定数组的长度; 数组越界异常:
访问了数组中不存在的索引。空指针异常:NullPointerException
数组的引用没有指向对象,但是却在操作对象中的元素。
int[] arr = {1,3,5};
//访问数组中的元素
//System.out.println(arr[3]);
try{
arr = null;
System.out.println(arr[1]);
}catch(NullPointerException e){
System.out.println(“发生了空指针异常”);
}catch (ArrayIndexOutOfBoundsException e){
System.out.println(“发生了数组越界异常”);
}catch (Exception e){
e.printStackTrace();
}finally{
System.out.println(“6666”);
}

数组的应用:身份证案例

public static void main(String[] args) {
//身份证的前17位数字
int card[] = new int[17];
//1-17位对应的系数
int data[] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
//身份证的最后一位
char[] code = {‘1’,‘0’,‘x’,‘9’,‘8’,‘7’,‘6’,‘5’,‘4’,‘3’,‘2’,‘1’};
Scanner sc = new Scanner(System.in);
int sum = 0;
for(int i = 0;i <card.length;i++){
System.out.println(“输入身份证的前十七位数字”);
card[i]=sc.nextInt();
}
for (int i = 0;i < card.length;i++){
sum += card[i] * data[i];
}
System.out.println(“最后一位”+code[sum % 11]);
}

栈和堆

栈:存储的是局部变量;
局部变量就是定义在方法中的变量;
使用完毕之后就会被释放,立即回收;
堆:存储的是new出来的对象;实体;
每一个对象都是有地址值的;
每一个对象的数据都是有默认值的;
byte,short,long-------0
float,double------------0.0
char--------------’\u0000’
boolean---------false
引用类型--------null
使用完毕之后,会在垃圾回收起空闲的时候被回收。

方法区:
本地方法区:(和系统有关系)
寄存器:(给CPU使用的)

冒泡排序 1、声明一个数组,存放8个元素
2、升序的排列
代码:public static void bubbleSorted(){
int[] arr = {99,56,24,2,666,84,154,6};
for (int i = 0;i < arr.length;i++){
for(int j = 0; j < arr.length-1-i;j++){
if (arr[j] > arr[j +1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
System.out.println(“排序后数组:”);
for(int i = 0;i < arr.length;i++){
System.out.println(arr[i]);
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值