《JavaSE中For循环入门》由会员分享,可在线阅读,更多相关《JavaSE中For循环入门(14页珍藏版)》请在金锄头文库上搜索。
1、For循环入门第一章:单层for循环基础学习java语言的很多同学们对for循环有些不理解吧,在这里,我就为带领大家进入for循环的大门,但未来的路还是靠大家自己。希望大家能够一直勇往直前,坚持不懈的努力。首先是单层的for循环,也就是for循环的基本语法。for (int i = 0; i 10; i+) /循环体这就是一个for循环的基本语法知道for循环的基本语法了,我们需要知道for循环是为了做什么用的,在我的理解中,因为是循环,所以就是为了相同动作而为了省略多行代码的一个方式。举个例子:假如你想打印10行“张朔银是个大懒虫!”正常打印的话需要这样:System.out.println
2、(张朔银是个大懒虫);System.out.println(张朔银是个大懒虫);System.out.println(张朔银是个大懒虫);System.out.println(张朔银是个大懒虫);. . 一直打印10行才可以,很麻烦但通过for循环很容易打印10行:for (int i = 0; i 10; i+) System.out.println(张朔银是个大懒虫);For循环打印的很容易吧,通过这个例子,我给大家讲解一下for循环的各个原理吧For循环中的三个表达式大家应该知道吧,分别为起始表达式,终止表达式,以及步长。根据经验,起始表达式最常用的就是int i = 0;和int i
3、= 1;这主要根据需求决定,假如你想循环10次,当你用int i = 0;时,终止表达式是i 10;或者i = 9;当然,很少有人用后面的这种表达方式;当你用int i = 1;的时候,可以用i = 10;或者i 11;同样,很少有人用后面的这种表达方式,或许你疑问,为什么上面的用而不用=,下面用=而不用,这不矛盾吗,实际并不是这个意思,而是因为都是循环10次,一般我们都将终止表达式写成10,这样不仅给人一种很专业的感觉,自己也很容易写,都是循环10次,写法很多很多,你还可以这样写:for (int i = 5; i 15; i+) System.out.println(张朔银是个大懒虫);起
4、始表达式为i = 5;终止表达式为i 15;结果都是一样的,都是循环10次,但是下面让人不仅不好理解,还让有一种很不专业的感觉。当然这也只是我个人认为的。再举个例子,也把我个人的习惯告诉给大家,我个人认为是比较好的,尤其到了数组的时候,这个习惯对数组是很有好处的。还是同样这个例子,这回不是打印10行了,而是打印13行。聪明的你应该会想到,有两种常用的方法了吧。第一种:for (int i = 0; i 13; i+) System.out.println(张朔银是个大懒虫);第二种:for (int i = 1; i = 13; i+) System.out.println(张朔银是个大懒虫)
5、;根据我个人的喜好,我喜欢第一种,习惯将起始表达式设为:int i = 0;因为数组索引的下标第一个是0,这样对数组很有好处。这个习惯是比较好的。但是,什么都不是绝对的,当表达式为double的时候,需求上可能不是整型,而是浮点型的时候,为了精确,需要终止表达式=当然,这种情况一般不会是数组,也不算特别常见。现在对for循环的基本知识有了一定的了解了吧。我再给大家介绍一个不常用,但是也需要知道的一种表达方式,还是那个例子,将张朔银是个大懒虫打印10行,正常思维都是用这种方式,for (int i = 0; i 0; i-) System.out.println(张朔银是个大懒虫);效果也是完全
6、一样的。单层for循环大家基本上是理解了吧。如果不理解,自己多打几个例子实践实践,咱们这行的,多敲多练是成长的关键。(如果仅是知道是这样,但是不理解,就好好多想想,我猜这基本的单层for循环对大家来说不是问题的吧)下面出两道小练习题:1. 打印出2-10一共9个数字;2. 打印出55至100中所有偶数的和。习题分析:因为是所有偶数和,很容易想到的可以有两种方式,第一种是做个判断,当数为偶数的时候,相加,不是偶数的时候,不加,当然,咱这主要是为了练习for循环,所以不要用判断,需要只用for循环来做这道题当然,这种题在工作的时候是不会见到的,但是对大家理解for循环还是比较有帮助的。第二章:双层
7、for循环入门单层的for循环入门结束了,下面需要讲一下双层for循环,你可能会问,什么时候我们会用到双层for循环呢?下面我们再举个例子,还是之前的例子,将张朔银是个大懒虫打印10行变成将*打印一数列,相信大家很容易做到吧,就是把张朔银是个大懒虫改成*是吧。打印出来的效果是*. . 一共10行,对吧,如果让你打印一行,10个的话,就把打印语句的System.out.println(*);换行去掉改成:System.out.print(*); 就可以了,是吧。那如果需求上让你打印10行,每行10个*怎么办呢?难道还能用10个for循环去那么打印?这样做是比较笨的方法,但怎样能很容易的打印出10
8、行10列的*呢。下面我就为大家讲一下解决方案:首先要构造出一个和这样效果一样的一行10个*也就是System.out.print(*);的效果。相信这样对大家来说是比较容易的。一个单层for循环可以轻易搞定:如下for (int i = 0; i 10; i+) System.out.print(*);这样可以打印一行10个*了吧,咱就完全可以讲将这个for循环理解成:System.out.print(*);再将System.out.print(*);打印10竖行对大家来说也不难吧for (int i = 0; i 10; i+) System.out.print(*);最后我们将System
9、.out.print(*);用之前打印出一行的for循环代替,就形成了for (int i = 0; i 10; i+) for (int i = 0; i 10; i+) System.out.print(*);System.out.println();/因为没行打印完需要换行当然,在一个语句块内,两个变量不能一样,所以习惯性的可以把内部的变量改为j,就形成了:for (int i = 0; i 10; i+) for (int j = 0; j i y-k z-l首先先判断i可能是哪些人,即i可以是a,b,c三人,通过for循环可以表示为:/因为a,b,c在阿斯科码中可以表示为97,98,
10、99,所以可以用下面表示for(int i = a;i = c; i+)即:for(int i = 97;i = 99; i+)判断完i可以是的人之后,我们判断k,k是在i的基础上判断的,所以是在第一层循环内来判断的。当然,k也一样只可以是a,b,c三人,即:for(int i = a;i = c; i+)for(int k = a;k = c;k+)但是k不能和i是同一个人,因为一个人不能同时和两个人进行比赛。所以在这需要做个判断,即for(int i = a;i = c; i+)for(int k = a;k = c;k+)if(i!=k)接下来的判断必须要满足i与k不是一个人的条件下,所
11、以再判断l可以是谁,当然,也一样可能是a,b,c三人中的任何一个,同样需要判断l不能和i,不能和k是同一个人,即:for(int i = a;i = c; i+)for(int k = a;k = c;k+)if(i!=k)for(int l = a;l = c;l+)if(l != k & l != i)最后再里面再做判断,也就是题意中:a说:我不和x比,c说我不和x以及z比即:for(int i = a;i = c; i+)for(int k = a;k = c;k+)if(i!=k)for(int l = a;l = c;l+)if(l != k & l != i)if(i != a & i != c & l != c)当这些条件全部成立的时候,结果就出来了,剩下的就是拼接字符串了。相信大家很容易就会写出来的。即:System.out.println(X和+i+对战);System.out.println(