Java基礎–循環結構
循環結構
while 循環
-
while是最基本得循環,它的結構為:
while(布爾表達式){ //循環內容 }
-
只要布爾表達式為true,循環就會一直執行下去
public class WhileDemo01 {
public static void main(String[] args) {
//輸出0~100
int i = 0;
while (i<100){
i++;
System.out.println(i);
}
}
}
- 我們大多是情況是會讓循環停止下來得,我們需要一個表達失效得方式來結束循環。
- 少部分得情況需要循環一直執行,比如伺服器得請求響應監聽等。
- 循環條件一直為true就會造成無線循環(死循環),我們正常得業務編程中也應該盡量避免死循環。會影響程式性能或者造成程式卡死崩潰!
public class WhileDemo02 {
public static void main(String[] args) {
while (true){
}
}
}//死循環
思考:計算1+2+3+….+100=?
public class WhileDemo03 {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while(i<=100){
sum=sum+i;
i++;
}
System.out.println(sum);
}
}
do…..while 循環
-
對於while語句而言,如果不滿足條件,則不能進入循環。但是有時候我們需要及時不滿足條件,也至少執行一次。
-
do….while循環和while循環相似,不同得是,do….while循環至少會執行一次。
do{ //程式碼語句 }while(布爾表達式);
-
While和do-While得區別:
-
while先判斷後執行,dowhile式先執行後判斷!
-
Do….while總是保證循環體會被執行至少一次,這是他們得主要差別。
public class DoWhileDemo02 {
public static void main(String[] args) {
int a = 0;
while (a<0){
System.out.println(a);
a++;
}
System.out.println("=========");
do {
System.out.println(a);
}while (a<0);
}
for循環
- 雖然所有循環結構都可以用while或者do…while表示但Java提供了另一種語句一for循環,使一些循環結構變得更加簡單。
- for循環語句是支援迭代的一種通用結構,是最有效、最靈活的循環結構。
- for循環執行的次數是在執行前就確定的。語法格式如下:
for(初始化;布爾表達式;更新){
//程式碼語句
}
public class ForDemo01 {
public static void main(String[] args) {
int a = 1;
while (a<=100){
System.out.println(a);
a += 2;
}
System.out.println("while循環結束!");
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}
//死循環
for ( ; ; ) {
}
/*最先執行初始化步驟。可以聲明一種類型, 但可初始化一個或多個循環控制變數,也可以是空語句。然後,檢測布爾表達式的值。如果為true, 循環體被執行。如果為false, 循環終止,開始執行循環體後面的語句。執行一次循環後,更新循環控制變數(迭代因子控制循環變數的增減)。再次檢測布爾表達式。循環執行上面的過程。*/
練習1:計算0到100之間的奇數和偶數的和
public class ForDemo02 {
public static void main(String[] args) {
int sum1 = 0;
int sum2 = 0;
for (int i = 0; i<100; i+=2){
sum1 = sum1 + i;
}
System.out.println("============================");
for (int i2 = 1; i2 < 100; i2+=2){
sum2 = sum2 + i2;
}
System.out.println("偶數和為"+sum1);
System.out.println("奇數和為"+sum2);
//第二種
int j = 0;
int o = 0;
for (int z = 0; z < 100; z++) {
if (z%2!=0){j+=z;
}else {o+=z;
}
}
System.out.println(j);
System.out.println(o);
}
}
練習2: 用while或for循環輸出1-1000之間能被5整除的數,並且每行輸出3個
public class ForDemo03 {
public static void main(String[] args) {
for (int i = 0; i <= 1000; i++) {
if (i%5==0){
System.out.print(i+"\t");
if (i%(5*3)==0){
System.out.println();
}
}
}
}
}
練習3:列印九九乘法表
public class ForDemo04 {
public static void main(String[] args) {
for (int p = 1; p <= 9; p++) {
for (int i = 1; i <= p; i++) {
System.out.print((p * i)+"\t");
}
}
}
}
增加for循環
-
這裡我們先只是見一面,做個了解,之後數組我們重點使用
-
在java5中引入了一種主要用於數組得增強型for循環。
-
java增強for循環語法格式:
for(聲明語句:表達式){ //程式碼句子 }
-
聲明語句:聲明新得局部變數,該變數的類型必須何數組元素的類型匹配。其作用域限定在循環語句塊,其值與此時數組元素的值相等。
-
表達式:表達式是要訪問的數組名,或者返回值為數組的方法。
public class ForDemo05 {
public static void main(String[] args) {
int [] numbres = {10,20,30,40,50};
for (int i = 0;i<5;i++){
System.out.println(numbres[i]);
}
System.out.println("================");
for (int x:numbres){
System.out.println(x);
}
}
}
break continue
-
- break在任何循環語句的主體部分,均可用break控制循環的流程。break用於強行退出循環,不執行循環中剩餘的語句。(break語句也在switch語句中使用)
public class BreakDemo01 { public static void main(String[] args) { int i = 0; while (i<100){ i++; System.out.println(i); if (i==30){ break; } } System.out.println("123"); } }
-
- continue語句用在循環語句體中,用於終止某次循環過程,即跳過循環體中尚未執行的語句,接著進行下一次是否執行循環的判定。
public class ContinueDemo01 {
public static void main(String[] args) {
int i = 0;
while (i<100){
i++;
if (i%10==0){
System.out.println();
continue;
}
System.out.print(i);
}
}
}
“break在任何循環語句的主體部分均可用break 控制循環的流程。 break用 於強行退出循環,不執行循環中剩餘的語句。(break 語句也在switch語句中使用)“
“continue語用在循環語句體中,用於終止某次循環過程,即跳過循環體中尚未執行的語句,接著進行下一次是否執行循環的判定。“
- 關於goto關鍵字
goto關鍵字很早就在程式設計語言中出現。 儘管goto仍是Java的一 個保留字,但並未在語言中得到正式使用; Java沒有goto。然而,在break和continue這兩個關鍵字的身上,我們仍然能看出- -些goto的影子—帶標籤的break和continue. - 「標籤」是指後面跟-一個冒號的標識符,例如: label:
- 對Java來說唯- 用到標籤的地方是在循環語句之前。而在循環之前設置標籤的唯-理由是:我們希望在其中嵌套另-個循環,由於break和continue關鍵字通常只中斷當前循環,但若隨同標籤使用,它們就會中斷到存在標籤的地方。