樂字節小樂上次講完了Java反射,接下來小樂給你們講述Java循環。測試
循環有如下四部分:spa
直到型 ( 先執行後判斷) ,結構爲:code
先執行循環體,後判斷布爾表達式。循環體至少執行一次圖片
其流程圖以下:作用域
靈活的循環 ( 可以肯定循環次數) ,結構爲:it
for 循環語句是支持迭代的一種通用結構,是最有效、最靈活的循環結構class
for 循環在執行條件測試後,先執行程序部分,再執行迭代因子( ( 步進) ) 。變量
初始化部分、條件判斷部分和迭代因子能夠爲空語句,但以「;」分開,下面的語句循環
表示無限循環遍歷
在 for 語句的初始化部分聲明的變量,其做用域爲整個 for 循環體,例如:
其流程圖以下:
案例:
a:輸出10次HelloWorld
b:輸出1-10的數據
c:輸出10-1的數據
d:求1-10的和
e:求1-100的和;求1-100的偶數和,求1-100的奇數和;1-50當中能被3整除的數的和
f: 求出 1-100當中既能被3整除又能被5整除還能被2整除的和
g:求出 1-100當中能被3整除或者能被5整除或者能被2整除的和,
h:求5的階乘 5!
i:請找出[1,200]之間能被3整除的 全部數,每行輸出5個數。
J:請找出[1,200]之間能被3整除的全部數,每行輸出5個數,每一個數之間用逗號分隔。
K:1+2+3+4+5+6+7+8+9+10=55用程序實現
思考:
鍵盤輸入一個年月日、判斷該年月日是該年的第幾天。
鍵盤輸入一個年月日、判斷該年月日離該年結束還有多少天。
指的是在一個循環語句內部再嵌套一循環或者多個循環輸出以下圖形:
思路:要想打印一個5x5的空心正方形,首先它的第一橫行和最後一行都是填滿的,須要所有遍歷出來,第二三四行和只有左右兩條邊是出來的,中間部分爲空的。所以在打印第二三四列的時候,須要再進行一下判斷,來肯定打印空格。
for (int x = 0;x<5 ;x++ ) //先肯定是5行5列的正方形 { if (x>0 && x<4) //打印出中間空的狀況 { for (int z=0;z<5 ;z++ ) //打印豎的列 { if (z==0 | z==4) //第一和最後一列 { System.out.print("* "); //輸出「* 」 }else if(z>=1 && z<=4){ //中間三列 System.out.print(" ");//輸出「 」 } } } else if(x==0 | x==4){ //第一行和最後一行 for (int y=0;y<5 ;y++ ) { System.out.print("* ");//所有都輸出「*」 } } System.out.println("");//println作一個換行(print輸出的內容是不換行的) }
思路分析: 輸出一個菱形,能夠拆分紅兩部分進行思考,分紅上下兩個三角形來進行輸出,那好了,如何輸出一個三角那,首先,三角形的是一個等腰三角形,而不是直角三角形,因此橫排除了遍歷「*」以外,還須要在其前邊添加若干空格把它擠過去 ,顯得比較好看,因此還得遍歷他前邊的空格。
for (int x = 0;x<10 ;x++ )//假設一共有10豎排 { if (x<=5)//上半個三角形的狀況 { for (int z =5-x;z>0 ;z-- )//前邊的空格是一個愈來愈少的三角形形態,因此定義爲5-x { System.out.print(" "); } for (int y=0;y<x ;y++ )// 第一行一個「*」,第二行2個「*」,能夠得出列數是和行數相等的,故定義y<x; { System.out.print("* ");//此時輸出「* 」; } }else//這是下半個三角形的狀況 { for (int z =0;z<x-5 ;z++ ) //此時前邊空格形態是上少下多,正好爲x-5; { System.out.print(" "); } for (int y=10-x;y>0 ;y-- )//上寬下窄,因此遍歷「*」爲10-x; { System.out.print("* "); } } System.out.println(""); }
思路分析:輸出一個空心菱形,須要拆分紅三部分進行思考,分紅上下兩個三角形來進行輸出,那好了,如何輸出一個三角那,首先,三角形的是一個等腰三角形,而不是直角三角形,因此橫排除了遍歷中間的菱形部分以外,還須要在其前邊添加若干空格把它擠過去 ,顯得比較好看,因此還得遍歷他前邊的空格。中間的空格也須要進行單獨遍歷,而「」作的框,只須要把肯定的值肯定出來,讓它輸出「」,便可!
for (int x = 0;x<10 ;x++ )//假設一共有10豎排 { if (x<=5)//上半個三角形的狀況 { for (int z =5-x;z>0 ;z-- )//前邊的空格是一個愈來愈少的三角形形態,因此定義爲5-x { System.out.print(" "); } for (int y=0;y<x ;y++ )//這裏了開始就進入正題了, { if (y==0 | y==x-1) //這是兩邊的框, 此時輸出「* 」 { System.out.print("* "); }else{//中間剩下的部分輸出空格 System.out.print(" "); } } }else{ for (int z =0;z<x-5 ;z++ ) //此時前邊空格形態是上少下多,正好爲x-5; { System.out.print(" ");// 很少說,先把空格懟進去 } for (int y=10-x;y>0 ;y-- )// 10-x爲有幾列 { if (y==1 | y==10-x ) //第一列和10-x(最後一列)輸出「*」作一個框出來 { System.out.print("* "); }else{ //中間部分輸出空格 System.out.print(" "); } } } System.out.println(""); }
來個九九乘法表:
先賣個關子,也算是留個做業吧,你們開動腦筋,動動手操做下,下次能夠公佈答案。