for循环和while循环的区别
使用区别:如果你想在循环结束后,继续使用控制条件的那个变量,用while循环,
否则用for循环。不知道用for循环。
因为变量及早的从内存中消失,可以提高内存的使用效率。
其实还有一种场景的理解:
如果是一个范围的,用for循环非常明确。
如果是不明确要做多少次,用while循环较为合适。
举例:吃葡萄。
优先考虑for,其次考虑while,最后考虑do…while
class WhileVsForDemo { public static void main(String[] args) { //for循环实现 for(int x=0; x<10; x++) { System.out.println("我爱Java"); } //这里不能在继续访问了 //System.out.println(x); //while循环实现 int y = 0; while(y<10) { System.out.println("我爱Java"); y++; } //这里是可以继续访问的 System.out.println(y); } }
/* 循环语句的区别: do...while循环至少执行一次循环体。 而for,while循环必须先判断条件是否成立,然后决定是否执行循环体语句。 */ class DoWhileDemo { public static void main(String[] args) { int x = 3; while(x < 3) { System.out.println("我爱Java");//不会被执行 x++; } System.out.println("--------------"); int y = 3; do { System.out.println("我爱Java");//执行一次 y++; }while(y < 3); } }
WhileDemo:
需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,
每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
请问,经过多少天,小芳才可以存到100元钱。
分析:(分解问题,降低难度)
A:小芳的妈妈每天给她2.5元钱
double dayMoney = 2.5;
B:她都会存起来
double daySum = 0;
C:从第一天开始存储
int dayCount = 1;
D:经过多少天,小芳才可以存到100元钱。
double result = 100;
E:这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
说明要判断dayCount的值,如果对5整除就减去6元钱。
daySum -= 6;
由此还隐含了一个问题,就是如果不是5的倍数天的话,钱要累加
daySum += dayMoney;
F:因为不知道是多少天,所以我用死循环while语句,
一旦超过100元我就退出循环。
class WhileDemo { public static void main(String[] args) { //每天要存储的钱是2.5元
double dayMoney = 2.5; //存钱的初始化值是0
double daySum = 0; //从第一天开始存储
int dayCount = 1; //最终存储不小于100就不存储了
int result = 100; //因为不知道是多少天,所以我用死循环,
while(true) { //累加钱
daySum += dayMoney; //一旦超过100元我就退出循环。
if(daySum >= result) { System.out.println("共花了"+dayCount+"天存储了100元"); break;//满足条件即跳出死循环 } if(dayCount%5 == 0) { //花去6元钱
daySum -= 6; System.out.println("第"+dayCount+"天花了6元钱"); } //天数变化
dayCount++; } }