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++; } }