循環控制
for循環
語法:
for(循環初值;循環條件;步長) { 語句; //循環體 }
例子:
import java.io.*; public class Demo4 { public static void main(String args[]) { for(int i=0;i<10;i++) { System.out.println("12.3"); } } }
while循環
語法:特別說明while循環是先判斷,再執行語句
while(循環條件) { 語句; //循環體 }
例子:
import java.io.*; public class Demo4 { public static void main(String args[]) { int i=0; while(i<10) { System.out.println("12.1"); i++; } } }
do while循環
語法:特別說明:do while是先執行再判斷
do { 語句; //循環體 }while(循環條件);
例子:
import java.io.*; public class Demo4 { public static void main(String args[]) { int i = 0; do{ System.out.println("do while循環"); i++; }while(i<10); } }
do while 和 while 的區別
import java.io.*; public class Demo4 { public static void main(String args[]) { int i=0; while(i>10) { System.out.println("while循環"); i++; } for (i=0;i>10;i++) { System.out.println("for循環"); } i = 0; do{ System.out.println("do while循環"); i++; }while(i>10); } } 輸出結果: D:\myJavaDemo>java Demo4 do while循環
do while不管符不符合條件都會執行一次循環
案例:請編寫一個程序,可以接受一個整數,表示層數,打印出金字塔
當遇到一個題無從下手時,可以先拆解成簡單的問題
public class Demo5 { public static void main(String []args) { //死去活來-->打四層 int lay = 4; //表示有多少層 for (int i=1;i<=lay;i++) { //打印* for(int k=lay-i;k>0;k--) //int k=1;k<=lay-i;k++ { System.out.print(" "); } for (int j=1;j<=(i-1)*2+1;j++) //1-1,2-3,3-5 { System.out.print("*"); } System.out.println(); //打印出換行符 } } }
注意 System.out.println 和 System.out.print 不一樣,前者會打出換行
案例二:將金字塔打印成鏤空形狀的
- 提示:要想到對打印 * 的那條語句動手腳
- 注意到只有第一層和最后一層打印的東西和原來完全相同,所以要做判斷,判斷是否是頂層或者底層,i表示層數——(i==1 || ==lay)
- 然后進行*號的判斷,前后的 * 號都要打出來,所以要判斷 * 是否是第一個和最后一個,j表示要打印的是第幾個 * ——(j==1 || j==(i-1)*2+1),剩下的要打印 空格
public class Demo5 { public static void main(String []args) { int lay = 7; for (int i=1;i<=lay;i++) { for(int k=lay-i;k>0;k--) { System.out.print(" "); } for (int j=1;j<=(i-1)*2+1;j++) { //判斷蓋層是否是頂層或者是底層 if(i==1||i==lay) { System.out.print("*"); } else { //如果是第一個*和最后一個*號,都要打出來 if(j==1||j==(i-1)*2+1) { System.out.print("*"); } else //否則就打印空格 { System.out.print(" "); } } } System.out.println(); } } }
作業:打一個鏤空的菱形