在所有的循環中,最常用的就是for了,另外2個 while和do..while我基本不用。所以 我這裡就把for循環重點介紹一下。
源代碼
package lession6;
/**
* 老紫竹JAVA基礎培訓(6),For循環語句的使用。<br>
*
* @author 老紫竹 JAVA世紀網(java2000.net)
*
*/
public class Lession6 {
/**
* for循環有三部分用分號分割<br>
* 第一部分是初始的數據<br>
* 中間是判斷是否繼續循環的判斷,如果為true則繼續循環<br>
* 一次循環後,做的處理,然後再進行中間的判斷<br>
* 運行順序為<br>
* 1 初始化<br>
* 2 中間的判斷<br>
* 3 循環體<br>
* 4 循環後處理<br>
* 轉2 繼續<br>
*/
public static void main(String[] args) {
// 循環變量在循環裡面聲明
for (int i = 1; i <= 10; i++) {
System.out.print(i);
}
System.out.println();
// 循環變量使用外部的變量
int i;
for (i = 1; i <= 10; i++) {
System.out.print(i);
}
System.out.println();
// 可以使用多個變量和判斷條件和循環後處理,用逗號分隔
// 初始化,m=0,n=100
// 循環條件為 m小於10,同時 n大於30
// 每次循環後處理是 m增加1,n減去5
for (int m = 0, n = 100; m < 10 && n > 30; m++, n -= 5) {
System.out.println("m=" + m + ",n=" + n);
}
System.out.println();
// 循環的各個部分是可以省略的
// 比如省略初始化部分
int k = 0;
for (; k < 10; k++) {
System.out.print(k);
}
System.out.println();
// 省略循環判斷部分
// 此時默認循環判斷結果為true
// 也就是死循環了
// 需要代碼裡進行一些特殊的處理
k = 0;
for (;; k++) {
System.out.print(k);
if (k > 10) { // 此處使用了 break語句中斷循環
break;
}
}
// 省略循環後處理部分
k = 0;
for (; k < 10;) {
System.out.print(k);
k += 2;// 我們可以在循環體裡面修改循環條件變量
}
System.out.println();
// 如果啥都沒有?
k = 0;
for (;;) {
System.out.print(k);
k += 3; // 內部使用
if (k > 10) { // 此處使用了 break語句中斷循環
break;
}
}
System.out.println();
}
}
測試:
1 所有的循環不只是遞增
大家把所有的判斷改成遞減看看,也就是類似
for(int i=100;i>0;i--)
這樣的例子
2 忽略或退出循環的方式。
大家看一下for循環裡面出現的 break的用法,當然還有一個continue,我這裡給一個 例子,其它的大家自己體會,我就不再細說了。
public static void test() {
int k = 0;
for (int i = 100; i >= 0; i--) {
if (i % 5 == 0) { // 如果能被5整除,則不處理,直接下一個
continue;
}
System.out.println(i);
k++;
if (k == 10) { // 如果已經處理了10個,則退出循環了。
break;
}
}
}
3 循環是可以嵌套的。
下面給一個嵌套打印長方形的例子。大家自己改造成打印三角形的例子吧。
/**
* 打印正方形的例子
*/
public static void test2() {
for (int i = 1; i <= 5; i++) { // 打印行數
for (int k = 1; k <= 3; k++) { // 每行打印的數量
System.out.print("*"); // 打印內容
}
System.out.println(); // 換行
}
}
嵌套循環裡的break和continue可以指定退出哪層循環,默認是當前的一層
/**
* 嵌套打印的繼續和終端例子。<br>
* 大家注意語句前面的 OUTER: 和 INNER:的語法, 標簽的名字加上冒號
*/
public static void test3() {
OUTER: for (int i = 1; i <= 10; i++) { // 打印行數
System.out.println(); // 換行挪到這裡,方便看清運行結果
INNER: for (int k = 1; k <= 3; k++) { // 每行打印的數量
System.out.print("*"); // 打印內容
if (i % 2 == 0) { // 內層如果發現行數為偶數行,則不再繼續打印 <
continue OUTER;
}
if (i % 5 == 0) { // 內層如果發現是可以被5整除的行,則退出外部循環
break OUTER;
}
}
}
}
for循環必須要掌握,而且要非常熟悉才可以。 如何設置起始,判斷和後處理條件, 如何繼續和中斷循環。