循环语句while
1.1 while循环的格式
基本格式
初始化语句;
while(条件表达式){
循环体语句;
控制体/步长语句;
}
扩展格式
初始化语句;
while(条件判断语句){
循环体语句;
}
1.2流程
初始化语句执行一次
判断条件是否成立,成立,则执行循环体,再依次执行步长语句;
...
如果不成立,while循环语句结束!
1.3 while和for的区别
1)格式不同
2) 并且从内存角度考虑:
for循环的 格式: for循环语句外面不能够访问变量的,因为它随着for循环执行完毕,main 方法结束之后,变量就会被GC(垃圾回收器)回收掉这些变量
while循环的扩展格式:循环结束,依然可以访问变量; 在内存中占用资源空间大于for循环
3)如果明确循环次数,优先使用for;不明确循环次数,使用while循环
1.4利用死循环完成猜字
1.4.1 死循环
在循环的过程中,没有控制变量,导致程序中永远"恒成立"
for(;;){
语句;
}
while(true){
语句...
}
1.4.2键盘不断录入数据,玩猜数字小游戏! (1-100之间的数据)
import java.util.Scanner ;
public class WhileTest3 {
public static void main(String[] args){
//使用Math类中提供给的random方法
//public static double random() :获取一个随机数 (直接使用Math.random())
/*for(int x = 0 ; x < 9 ; x ++){
double d = Math.random() ;
System.out.println(d);
}*/
//产生一个1-100之间的数据 (int类型)
// int num = (int)(Math.random()* 100 +1) ;//取不到100,所以需要+1
//System.out.println(num);
//需求:键盘不断录入数据,玩猜数字小游戏! (1-100之间的数据)
//分析:
//1)使用Math类的 random方法产生一个1-100之间的随机数 (要猜的数据)
//2)创建键盘录入对象,录入数据
//3)录入的数据和当前产生的随机数据的进行比较,
//4)如果大了,提示大了
//小了,提示小了
//相等,猜中了
//break:switch语句中,循环语句中使用
//产生一个1-100之间的随机数
int num = (int)(Math.random()*100+1) ;
while(true){
//导包
//创建键盘录入对象
Scanner sc = new Scanner(System.in) ;
//提示并录入数据
System.out.println("请您输入1-100之间的数字:") ;
int guessNumber = sc.nextInt() ;
if(guessNumber> num){
System.out.println("您要猜的数字大了!");
}else if(guessNumber < num){
System.out.println("您要猜的数字小了!") ;
}else{
System.out.println("恭喜您,猜中了!") ;
break ; //中断循环,否则死循环...
}
}
}
}
2 do..while循环
2.1格式
初始化语句;
do{
循环体语句;
步长语句/控制体语句;
}while(条件表达式) ;
2.2流程
初始化语句执行一次,对变量进行赋值
执行循环体语句,
执行步长语句(++或者--)
判断while后的条件是否成立,成立,继续执行循环体语句...
不成立,语句结束!
do-while循环和for循环以及while循环的最大的区别就是:循环体至少执行一次!