1.while循环语句
基本格式:
while (条件判断语句){
循环语句;
}
执行流程:
①执行初始化语句
②执行条件判断语句,看起结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续执行
完整格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
/*
while循环语句
基本格式:
while(条件判断句){
循环体语句;
}
完整格式:
初始化语句;
while(条件判断句){
循环体语句;
条件控制语句;
}
执行流程:
①执行初始化语句
②执行条件判断语句,看起结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续执行
*/
public class whileDemo{
public static void main(String[] args){
//需求:在控制台输出5次”HelloWorld“
//for循环实现
for(int i = 1; i <= 5;i++){
System.out.println("HelloWorld");
}
System.out.println("--------");
int j = 1;
while (j <= 5){
System.out.println("HelloWorld");
j++;
}
}
}
DOS命令提示符窗口
C:\Users\Apple>d:
D:\>javac whileDemo.java
D:\>java whileDemo
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
--------
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
D:\>
执行顺序:
初始化语句 👉 条件判断句 👉 true 👉 循环体语句 👉 条件控制语句 👉 条件判断句 ...... 遇到 false 时 会终断语句, 👉 其他语句
1.2)案例:珠穆朗玛峰
需求:世界最高山峰时珠穆朗玛峰(8844.43米=884430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰。
分析:
①因为要反复折叠,所以需要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环。
while (条件判断语句){
循环体;
}
②循环的执行过程中每次纸张折叠,纸张的厚度要加倍,因此要先定义纸张厚度,在循环体中使厚度加倍
double paper = 0.1;
while (条件判断语句){
paper *= 2;
}
③折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度
int zf = 884430;
while (paper<= zf){
}
④设置一个计数器,在循环体中执行累加, 对应折叠了多少次
int count = 0;
while ( paper <= zf){
count++;
}
/*
案例:珠穆朗玛峰
需求:世界最高山峰时珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,
它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰。
*/
public class whileDemoTest1{
public static void main(String[] args){
//定义一个计数器,初始值为0;
int count = 0;
//定义纸张厚度
double paper = 0.1;
//定义珠穆朗玛峰的高度
int zf = 8844430;
/*因为要反复折叠,所以要使用循环语句,但是不知道折叠多少次,
这种情况更适合while循环语句
*/
while(paper <= zf){
//循环执行过程中,纸张的厚度要加倍
paper *= 2;
//在循环中执行累加,对应折叠了多少次
count++;
}
//打印计数器的值
System.out.println("需要折叠:" + count + "次");
}
}
DOS命令提示符窗口
C:\Users\Apple>d:
D:\>javac whileDemoTest1.java
D:\>java whileDemoTest1
需要折叠:27次
D:\>
2.do……while循环语句
基本格式:
do{
循环体语句;
}while(条件判断句)
完整格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
①执行初始化语句;
②执行循环体语句;
③执行条件控制语句;
④执行条件判断语句,看其结果是true,还是false
如果是false,循环结束
如果是true,继续执行
⑤回到②继续
/*
do……while语句
完整格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
①执行初始化语句;
②执行循环体语句;
③执行条件控制语句;
④执行条件判断语句,看其结果是true,还是false
如果是false,循环结束
如果是true,继续执行
⑤回到②继续
*/
public class dowhileDemo{
public static void main(String[] args){
//需求:在控制台输出5次“HelloWorld”
//for循环实现
for(int i = 1; i <= 5;i++){
System.out.println("HelloWorld");
}
System.out.println("--------");
//while循环实现
int j = 1;
while(j <= 5){
System.out.println("HelloWorld");
j++;
}
System.out.println("--------");
//do...while循环实现
int k = 1;
do{
System.out.println("HelloWorld");
k++;
}while(k <= 5);
}
}
DOS命令提示符窗口
C:\Users\Apple>d:
D:\>javac dowhileDemo.java
D:\>java dowhileDemo
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
--------
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
--------
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
D:\>
3.三种循环的区别
3.1)三种循环的区别:
①for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
②do...while循环体先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(限制性后判断)
3.2)for 和 while 的区别:
①条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了。
②条件控制语句所控制的自增变量,对于while循环来说,不归属于其语法结构中,在while循环结束后,该变量还可以继续使用
3.3)死循环:
①for(;;){}
②while(true){}
③do{}while(true);
*注:
①while的死循环格式是最常用的
②命令提示符窗口中,ctrl+c 可以结束死循环
/*
三种循环的区别
*/
public class LoopTest{
public static void main(String[] args){
/*
//for循环
for(int i = 3; i < 3; i++){
System.out.println("我爱Java");
}
System.out.println("--------");
//while循环
int j = 3;
while(j < 3){
System.out.println("我爱Java");
}
System.out.println("--------");
//do...while循环
int k = 3;
do{
System.out.println("我爱Java");
}while(k < 3);
*注1:在上述三种循环里面,前两个未执行,但在do...while循环语句里,执行过1次
*/
/*
for(int i = 1; i < 3; i++){
System.out.println("我爱Java");
}
//System.out,println(i);
System.out.println("--------");
//for里面的那个System.out.println(i);会提示错误主要是 这个实在for循环语句里面,
//while循环
int j = 1;
while(j < 3){
System.out.println("我爱Java");
}
System.out.println(j);
System.out.println("--------");
//System.out.println(j);这里可以正常执行,输出:3,是因为设定int j=1,是在while循环语句外的。
*/
//for死循环
/* for(;;) 这里是表示:一直是true
for(;;){
System.out.println("for");
}
*/
//while死循环
/*
while(true){
System.out.println("while");
}
*/
//do...while死循环
/*
do{
System.out.println("while");
}while(true);
*/
}
}