用 while 语句写猜数游戏
package cn.tedu.day03;
import java.util.Scanner;
/*
-
while循环:
-
猜的数字:int num =456;
-
条件:int guess;
-
while(){
-
猜数字;
-
guess < num; 猜小了
-
guess > num; 猜大了
-
guess ==num; 猜对了,退出(break)。
-
}
-
*/
public class WhileDemo {
public static void main(String[] args){
System.out.println("猜数游戏");
System.out.println("");
//其中Math.random()方法是一个可以产生[0.0,1.0)区间内的一个双精度浮点数的方法
//Math.random()----------------------- 0.0-0.9999999....
//产生一个100以内的整数
int num = (int)(Math.random()*100);
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字 a : ");
int a;
while(true){
a = sc.nextInt();
if(a == num){
System.out.println("恭喜你猜对了");
break;
}else if(a < num){
System.out.println("你猜小了");
}else{
System.out.println("你猜大了");
}
}
}
}
/*
单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38
双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308
*/
do-while 循环语句(先执行后判断)
格式
do{
循环体语句;
}while(判断条件语句);
eg.
用 do-while 语句写猜数游戏
public static void main(String[] args){
System.out.println("猜数游戏");
System.out.println("");
int num = (int)(Math.random()*100);
System.out.println(num);
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字 a : ");
int a;
do{
a = sc.nextInt();
if(a == num){
System.out.println("你猜对了");
}else if(a < num){
System.out.println("你猜小了");
}else{
System.out.println("你猜大了");
}
}while(a != num);
}
break 和 continue 的区别
continue:使用循环结构中,用于结束本次循环继续下一次循环
break:可以使用在 switch 结构中和循环结构中,用于跳出当前结构
Random (随机数)
·
创建对象
Random r = new Random;
·
获取随机数
int num = r.nextInt(100);
//产生的数据在[0,100)之间,
数组
A:数组概念
数组是存储同一种数据类型多个元素的容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
B:数组的定义格式
·
格式1:数据类型[] 数组名;
格式2:数据类型 数组名[];
注意:这两种定义做完了,数组中是没有元素值的。
C:数组的初始化
数组中的数组元素进行分配内存空间
·
动态初始化:初始化的时候,只指定数组长度,由系统来为数组分配初始值
·
静态初始化:初始化的时候,指定了每一个数组元素的初始化的值,由系统来决定数组长度
JAVA中的内存分配
栈:
存储的是局部变量
局部变量就是定义在方法中的变量
使用完毕之后就会被释放,立即回收
堆:
存储的是new出来的对象:实体
·
每一个对象都是有地址值的
·
每一个对象的数据都是有默认值的:
o byte short long—0
float double----------0.0
char------------------------’\u0000’
boolean------------------false
引用类型-----------------null
·
使用完毕之后,会在垃圾回收起空闲的时候,被回收
·
方法区:
·
本地方法区:(和系统有关)
·
寄存器:(给cpu使用的)
数组越界异常
访问了数组中不存在的索引