1.
while:先判斷條件,只有條件滿足才執行循環體。
do while:先執行循環體,再判斷條件,條件滿足,再繼續執行循環體。
簡單一句話,do while:無論條件是否滿足,循環體至少循環一次
int x = 1;
do
{
System.out.println("do : x="+x);
x++;
}
while (x<5);
int y = 1;
while(y<0)
{
System.out.println("y="+y);
y++;
}
while語句
定義初始化表達式;
while(條件表達式)
{
循環體(執行語句);
}
int x = 1;
while(x<=3)
{
System.out.println("x="+x);//x=1
x++;
}
2.for語句
格式:
for(初始化表達式;循環表達式;循環後的操作表達式)
{
執行語句;
}
**初始化表達式只執行一次
只有條件不滿足,循環就結束**
int x = 1;
for(System.out.println("a");x<3;System.out.println("c"),x++)
{
System.out.println("d");
//x++;
}
執行結果:adcdc
3.
for和while的區別
1,變量有自己的作用域。對於for來講:如果將用於控制循環的增量定義在for語句中。
那麼該變量只在for語句中有效。
for語句執行完畢。該變量在內存中被釋放。
2,for和while可以進行互換,如果 需要定義循環增量。用for更合適。
總結:
什麼時候使用循環結構?
當要對某些語句執行很多次時,使用循環結構
練習 :
/*
1 獲取1~10的和,並打印
2 1~100之間7的倍數個數,並打印
*/
int sum = 0;
for(int x=0; x<=10; x++)
{
sum += x;
}
System.out.println("for sum="+sum);
用 while語句實現:
int sum = 0;
int x = 1;
while(x<=10)
{
sum = sum + x;
x++;
}
System.out.println("sum="+sum);
1~100之間7的倍數的個數,並打印
思路:
1.先對1~100進行循環(遍歷)通過循環形式
2.在遍歷的過程中,定義條件,只對7的倍數進行操作。
3.因爲7 的倍數不確定,只要符合條件就通過一個變量來記住這個變化的次數
步驟:
1.定義循環語句。選擇for語句
2.再循環中定義判斷。只要是7的倍數即可。使用if語句。條件:7的倍數 x%7=0
3.定義一個變量,該變量隨着7的倍數的出現而自增。
int count = 0;
for(int x = 1 ;x<=100; x++)
{
if(x%7==0)
//System.out.println("x="+x);
count++;
}
System.out.println("count="+count);
循環嵌套
語句嵌套形式。其實就是語句中還有語句
public static void main(String[] args)
{
for(int x=0;x<3;x++)
{for(int y=0;y<4;y++)
{
System.out.print("*");//ln代表換行。
}
System.out.println();//只有一個功能換行。
}
打印結果:4*3的長方形,由“*”構成
//int z=0;定義一個變量z也可以。
for(int x=0; x<5;x++)//因爲外循環控制行數,一共五行。
{
for(int y=x; y<5;y++)
{
System.out.print("*");
}
System.out.println();
//z++;
}
思路:
對於打印長方形,外循環控制的是行數,內循環控制的是每一行的列數,也就是一行中元素的個數。
打印九九乘法表
/*
九九乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
*/
class chengfaDemo
{
public static void main(String[] args)
{
for(int x=1;x<=9;x++)
{
for(int y=1 ;y<=x;y++)
{
System.out.print(y+"*"+x+"="+x*y+"\t");
}
System.out.println();//換行功能
}
}
// \t 製表符
}
其他流程控制語句
public static void main(String[] args)
{
for(int x =0;x<3;x++)
{
System.out.println("x="+x);
break;
}
}
打印結果爲0,然後直接跳出。循環語句結束。
public static void main(String[] args)
{
for(int x =0;x<3;x++)
{
break;
System.out.println("x="+x);
}
}
這樣是不行的,會直接跳出,語句執行不到
嵌套循環跳出
for(int x =0;x<3;x++)
{
for(int y =0;y<4;y++)
{
System.out.println("x="+x);
break;
}
}
打印結果:x=0,x=1,x=2
標識:
w:for(int x =0;x<3;x++)
{
q:for(int y =0;y<4;y++)
{
System.out.println("x="+x);
break w;
}
}
跳出的是外循環
注:只有循環語句可以標識(就是起名字便於區分)。
——————————————
continue:只能作用於循環結構。繼續循環
continue不能單獨存在,後面的語句執行不到
特點:結束本次循環,繼續下一次循環
for(int x=1;x<=10;x++)
{
if(x%2==1)
continue;//執行到continue直接回去x++,下面語句不執行
System.out.println("x="+x);
}
//打印結果2,4,6,8,10
w:for(int x =0;x<3;x++)
{
for(int y =0;y<4;y++)
{
System.out.println("x="+x);
continue w;
}
}
//打印結果0,1,2
/*
記住:
1.break和continue作用的範圍(循環結構swich,for)
2.break和continue單獨存在時,下面不可以有任何語句,因爲執行不到
*/
練習:打印金字塔
for(int x=0;x<5;x++)
{
for(int y=x+1;y<5;y++)
{
System.out.print(" ");
}
for(int z=0;z<=x;z++)
{
System.out.print("* ");
}
System.out.println();
}
打印結果