循環控制
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();
}
}
}
作業:打一個鏤空的菱形
