while循环语句
格式:
基本格式
while(判断条件语句){
循环体语句;
}
扩展格式
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
例:猜0–1000的随机数
package cn.llhc.det01;
import java.util.Scanner;
public class WhileDemo {
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int num =(int)(Math.random()*1000);//生成0-1之间的随机数字,再乘以1000就是0-1000之间的随机数
System.out.println(“请输入你要猜的数字:”);
int guess = sc.nextInt();
while(guess != num){
if(guess < num){
System.out.println(“猜小了”);
}else{
System.out.println(“猜大了”);
}
System.out.println(“继续猜:”);
guess = sc.nextInt();
}
if(guess == num)
System.out.println(“恭喜你猜对了!”);
}
}
格式:
基本格式:
do{
循环体语句;
}while(判断条件语句);
例猜数字
package cn.llhc.det01;
import java.util.Scanner;
public class DoWhileDemo {
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
int num =(int)((Math.random()*1000)+1);//生成0-1之间的随机数字,再乘以1000就是0-1000之间的随机数
System.out.println(“被猜数字:” + num);
System.out.println(“请输入你要猜的数字:”);
int guess ;
do{
guess = sc.nextInt();
if(guess < num){
System.out.println(“猜小了”);
}else if(guess > num){
System.out.println(“猜大了”);
}
System.out.println(“继续猜:”);
//guess = sc.nextInt();
}while(guess != num);
if(guess == num){
System.out.println(“恭喜你猜对了!”);
}
}
}
数组
A、数组的概念:
数组是存贮同一种数据类型多个变量的容器
数组既可以存储基本数据类型,也可以存储引用数据类型
B、数组的定义格式:
格式1:数据类型[] 数组名;
格式2:数据类型 数组名[]
C、数组的初始化:
必须先初始化,在使用
初始化:数组中的数组元素进行分配内存空间
并且为每一个数据元素进行赋值
两种:
1、动态初始化:初始化时,只指定数组长度,由系统来为数组分配初始值。
2、静态初始化:初始化时,指定每一个数组元素的初始化值,由系统来决定数组的长度。
D、数组的访问
通过(数组名.leng)来获取数组的长度(元素个数)
java 中的内存分配:
栈:
内存的局部变量
局部变量就是定义在方法中的变量
使用完毕之后就会被释放,立即收回
堆:
存储的是new出来的对象:实体;
每一个对象都是有地址值得;
每一个对象的数值都是有默认值的
byte , short, ,long------0;
float, double-------0.0;
char------------------’\u0000’;
boolean-------------false;
引用类型-----------null;
使用完毕后,会在垃圾回收起空闲的时候,被回收。
方法区:
本地方法区:(和系统有关系)
寄存器:(给cpu使用的)
异常
数组越界异常
访问了数组中不存在的索引
ArrayIndexOutOfBoundsException
空指针异常
NullPointerException
数组中的莹用没有指向对象,但是却在操作对象中的元素
冒泡优化版排序
package cn.llhc.det02;
import java.util.Scanner;
/**
* 冒泡排序
* 1、声明一个数组,存放八个元素
*/
public class SortedDemo {
public static void main(String[] args){int[] arr = {11,2,31,14,25,15,45,55};
bubbleSorted(arr);
}
public static void bubbleSorted(int[] arr){
boolean isSorted;
for (int i =0;i<arr.length;i++){//轮数
isSorted = true;//假设剩下的元素已经排序好了
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;
isSorted = false;
//一旦需要交换数组元素,说明剩下的元素没有排序好
}
}
System.out.println("排序的趟数:" + i);
if(isSorted){
break;//如果没有发生交换,说明剩下的元素已经排序完毕。
}
}
System.out.println("排序后数组:");
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
}
}