2021-9-19-学习日志8-循环语句-while与do...while

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);
		*/
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值