菜鸟笔记(6)for
循环结构一共三个,前面说过,(1)while.(2)do...while,今天来说最后一个for for循环是循环中的重点.也是循环中用到最多的.同时还是循环中功能最强大的. 有的书可能会把for比其他循环多介绍一点.既然它这么重要,小菜鸟就一定要学好.
for与while属于"当型"循环而do...while属于"直到型循环". 首先先来看一下它的格式,然后在让我们一点一点分析它吧.
for格式:
for(initialization;termination;iteration) { body; }
/*initialization为初始化,整个程序只执行一次,termination为终止部分,得到的必须 是一个boolean值.iteration为控制变量的增量表达式.*/
大家可以看到for循环"格式体积"减少了.除了body其他都在一行.比其他循环真 的能稍打不少东西呢呵呵. 简单解释一下:首先执行的是initialization初始化,初始化部分可以在for{} 外面声明变量,但是赋值一定要在for{}里面.也可以在for{}里面直接声明并赋值 变量. 初始化以后在termination终止部分中判断true or false.如果为true那么 先执行body循环体部分.然后在继续执行下面的iteration迭代,(注意先执行body) 这样完成了第一次循环.再返回for开头进行第2次,直到当termination 条件为false时候,退出循环.
java小贴士:事实上for循环即使initialization;termination;iteration 都没有编译也不会出错.(但是他们中间的分号必须有).不过执行以后变成死循环了. 其实body包括后面的;也可以没有,不过for后的{}必须有.当然如果什么都没有也没有 意义了,这里只是说名一下,即使没有编译也不会出错而已.
还是来举一个最简单的例子吧: 例1: public class Zzz{
public static void main(String args[]) {
for(int i=1;i<5;i++) { System.out.println("A"); } } }
简单说一下:我相信凡是学过while和do的...都不用我废话了... 先判断i是否<5.如果为true则执行body部分然后在执行i++.然后在回到开头,只有当i<5为false时候 才退出循环 程序输出为 A A A A java小贴士:在for的第1,3部分中.initialization和iteration可以用,逗号格开,加入更多的初始化 还有迭代部分.如改写上面那个例子.for(int i=1,j=1;i<5;i++,j++) 这样的话当变量1到5时j也同时到5 了.这个只需要记得用,逗号分开就可以了.中间的termination是不能分开的. java小贴士:在for中要表达一个控制变量i加1.可以写成++i,i++,i=i+1,i=+1; 这些都是一样的. 有的人偏喜欢用i++;这样显得是在执行完body以后,进行一轮循环以后在+1 不过,由于for本身就是先执行body部分,在执行iteration部分,所以在for里面他们的效果是一样的.
java小贴士:不要给for后面加分号.还有.for循环如果之中部分第一次就为false则直接退出循环. 还有不要把程序弄成死循环.如for(int i=1;true;i++) ...
再看一个很简单的例子,用来求sun=1+2+3+..5.累加. 例2 public class Zzz{ public static void main(String args[])
for(int sum=0,i=0;i<=5;i++) { sum+=i; System.out.println("sum="+sum); } } }
简单分析一下:首先定义i,sum两个int变量variables.然后初始化sum=0,i=0.(这里的sum 小菜鸟感觉只是一个充当求和的变量...) 然后判断termination终止.这里为true.然后sum+=i sum=0+0.再执行输出.第一行sum=0 最后for中的i在++,i变为1.继续下第2次循环.sun=1+2=3...sum=3 i=3..3+3..直到15 最后i=5,退出循环.
下面说最后关于欠套吧. 流程控制结构包涵流程控制结构我们称之为欠套.for结构的欠套应用还是非常广泛的. 格式如下: for(initialization;termination;iteration) { body; for(initialization;termination;iteration) { body; }
}
另外for结构里的控制变量不能相同.下面写一个最简单的欠套. 99乘法表,HOHO 例3: public class Zzz{ public static void main(String args[]){
for(int i=1;i<=9;i++){ for(int j=1;j<=9;j++){ System.out.println(i+"*"+j+"="+i*j); } }
} }
简单解释一下:现看欠套外面的for.i=1为true,然后进入欠套里面.j=1为true. 执行输出i*j 1*1=1.然后j++ j=2.接着返回欠套循环for继续执行i*j 1*2=2. 然后1*3....1*9....当j=10退出循环. 返回欠套外面的循环.i++ 这时候i变成2.然后在进入欠套里面重复2*1...2*2... ...2*9... 直到9*1...9*9=81
小菜鸟的废话: 1青岛啊,啤酒:昨天看电视里面有人介绍青岛...得知再青岛喝啤酒是一种文化...汗 还有比赛,一瓶青岛啤酒看谁先喝玩...有的人只要不到10秒喝一瓶...汗... 而且还有女的参加比赛...给人的感觉...好像女侠~~HOHO.那女的果然不负众望.勇夺第一(倒数的..) 2武林至尊:最近一直再看天龙八部...黄日华演的,现在上海台还在演... ...看的有点疯狂了~没事自己就比划降龙十八掌... 再加上最近天天打乒乓球经常被0:5击败~最近比较晕,所以这几天不敢发言了,怕说错话... 3hey,玛丽奥:这个游戏做的有点意思.让人觉得不可思议的是,游戏玩着玩着,变成控制公主了,公主的卧室 还有机关,打开机关,转转转...到"库巴(最后boss,怪兽)"房间了.房间桌子上有一个本子,一看...居然是 库巴的日记本...汗(怪兽会写日记...?它的是爪子...怎么握笔?)而且日记还写了它做的所有坏事... 4奥运金牌榜:中国10快金牌了~耶现在还是第1,澳大利亚6快第2.日本第5快第3.
Q区~~~概念~~书上没有解释... Q1:在我看的书中有两本都写着这样一句话,while适用于在执行次数不固定的循环中.而for用于固定的循环. 小菜鸟一直不能理解...小菜鸟感觉这两个除格式外没区别啊...为什么这样说.不过小菜鸟看人写循环 还是for多于while...
Q2:书上还经常写这样一句话:for与while属于"当型"循环而do...while属于"直到型循环"? 什么叫"当型"怎么理解这个意思?
小菜鸟感觉意思像是要说先判断表达式ture或false.再执行body与iteration.是当型 相反是直到型. 可怎么名词中文意思怎么解释?
给大家带来的不便与麻烦还请大家多多包涵.