一、while循环语句和for循环语句格式对比
while循环的执行流程
二、练习:利用while循环打印1~100
需求:利用while循环打印1~100
package com.itheima.loopdemo;
public class WhileDemo1 {
public static void main(String[] args) {
//分析:
//开始条件:1
//结束条件:100
int i = 1;
while(i <= 100){
System.out.println(i);
i++;
}
}
}
三、for和while的对比
相同点:运行规则是一样的。
for 和 while 的区别:
- for循环中,控制循环的变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
- while循环中,控制循环的变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。
这种说法是很多书上的解释,但是这种说法并不是很绝对,因为for循环可以改写,for循环的初始化语句也可以写在for循环外面,小括号里初始化语句可以空着不写,此时两种循环就不会有任何区别了。
所以以下会从实际开发的角度说一下这两种到底有什么区别。
能用for循环的地方一定能用while循环进行改写,能用while循环的地方一定也能用while循环进行改写。这两个在语法当中其实是没有任何区别的,它们的区别在于使用习惯上。
- for循环中:知道循环次数或者循环的范围
- while循环:不知道循环的次数和范围, 只知道循环的结束条件
练习
需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
package com.itheima.test;
public class Test17 {
public static void main(String[] args) {
//分析:折叠纸张:每一次折叠纸张的厚度都是原先的两倍
// double a = 0.1;
// a = a * 2;
// => a *= 2
//1.定义一个变量用来记录山峰的高度
double height = 8844430;
//2.定义一个变量用来记录纸张的初始厚度
double paper = 0.1;
//3.定义一个变量用来统计次数
int count = 0;
//4.循环折叠纸张,只要纸张的厚度小于山峰的高度,那么循环就继续
//每折叠一次,统计次数就要++
//选择while理由:此时我们不知道循环的次数也不知道循环的范围,只知道循环的结束条件,所以用while
while(paper < height){
//折叠纸张
paper = paper * 2;
//折叠一次,++一次
count++;
}
//当循环结束之后,count记录的值就是折叠的次数
System.out.println(count);
}
}