for循環和while循環的區別
使用區別:若是你想在循環結束後,繼續使用控制條件的那個變量,用while循環,spa
不然用for循環。不知道用for循環。
由於變量及早的從內存中消失,能夠提升內存的使用效率。
其實還有一種場景的理解:
若是是一個範圍的,用for循環很是明確。
若是是不明確要作多少次,用while循環較爲合適。
舉例:吃葡萄。code
優先考慮for,其次考慮while,最後考慮do...whileblog
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元錢。for循環
分析:(分解問題,下降難度)
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語句,class
一旦超過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++; } }