老紫竹JAVA基础培训(6),For循环语句的使用


原文: http://www.java2000.net/p11512

在所有的循环中,最常用的就是for了,另外2个 while和do..while我基本不用。所以我这里就把for循环重点介绍一下。
  1. package lession6;
  2. /**
  3.  * 老紫竹JAVA基础培训(6),For循环语句的使用。<br>
  4.  * 
  5.  * @author 老紫竹 JAVA世纪网(java2000.net)
  6.  * 
  7.  */
  8. public class Lession6 {
  9.   /**
  10.    * for循环有三部分用分号分割<br>
  11.    * 第一部分是初始的数据<br>
  12.    * 中间是判断是否继续循环的判断,如果为true则继续循环<br>
  13.    * 一次循环后,做的处理,然后再进行中间的判断<br>
  14.    * 运行顺序为<br>
  15.    * 1 初始化<br>
  16.    * 2 中间的判断<br>
  17.    * 3 循环体<br>
  18.    * 4 循环后处理<br>
  19.    * 转2 继续<br>
  20.    */
  21.   public static void main(String[] args) {
  22.     // 循环变量在循环里面声明
  23.     for (int i = 1; i <= 10; i++) {
  24.       System.out.print(i);
  25.     }
  26.     System.out.println();
  27.     // 循环变量使用外部的变量
  28.     int i;
  29.     for (i = 1; i <= 10; i++) {
  30.       System.out.print(i);
  31.     }
  32.     System.out.println();
  33.     // 可以使用多个变量和判断条件和循环后处理,用逗号分隔
  34.     // 初始化,m=0,n=100
  35.     // 循环条件为 m小于10,同时 n大于30
  36.     // 每次循环后处理是 m增加1,n减去5
  37.     for (int m = 0, n = 100; m < 10 && n > 30; m++, n -= 5) {
  38.       System.out.println("m=" + m + ",n=" + n);
  39.     }
  40.     System.out.println();
  41.     // 循环的各个部分是可以省略的
  42.     // 比如省略初始化部分
  43.     int k = 0;
  44.     for (; k < 10; k++) {
  45.       System.out.print(k);
  46.     }
  47.     System.out.println();
  48.     // 省略循环判断部分
  49.     // 此时默认循环判断结果为true
  50.     // 也就是死循环了
  51.     // 需要代码里进行一些特殊的处理
  52.     k = 0;
  53.     for (;; k++) {
  54.       System.out.print(k);
  55.       if (k > 10) { // 此处使用了 break语句中断循环
  56.         break;
  57.       }
  58.     }
  59.     // 省略循环后处理部分
  60.     k = 0;
  61.     for (; k < 10;) {
  62.       System.out.print(k);
  63.       k += 2;// 我们可以在循环体里面修改循环条件变量
  64.     }
  65.     System.out.println();
  66.     // 如果啥都没有?
  67.     k = 0;
  68.     for (;;) {
  69.       System.out.print(k);
  70.       k += 3// 内部使用
  71.       if (k > 10) { // 此处使用了 break语句中断循环
  72.         break;
  73.       }
  74.     }
  75.     System.out.println();
  76.   }
  77. }

测试:
1 所有的循环不只是递增
大家把所有的判断改成递减看看,也就是类似
  1. for(int i=100;i>0;i--)  
这样的例子

2 忽略或退出循环的方式
大家看一下for循环里面出现的 break的用法,当然还有一个continue,我这里给一个例子,其它的大家自己体会,我就不再细说了。
  1.   public static void test() {
  2.     int k = 0;
  3.     for (int i = 100; i >= 0; i--) {
  4.       if (i % 5 == 0) { // 如果能被5整除,则不处理,直接下一个
  5.         continue;
  6.       }
  7.       System.out.println(i);
  8.       k++;
  9.       if (k == 10) { // 如果已经处理了10个,则退出循环了。
  10.         break;
  11.       }
  12.     }
  13.   }

3 循环是可以嵌套的
下面给一个嵌套打印长方形的例子。大家自己改造成打印三角形的例子吧。
  1.   /**
  2.    * 打印正方形的例子
  3.    */
  4.   public static void test2() {
  5.     for (int i = 1; i <= 5; i++) { // 打印行数
  6.       for (int k = 1; k <= 3; k++) { // 每行打印的数量
  7.         System.out.print("*"); // 打印内容
  8.       }
  9.       System.out.println(); // 换行
  10.     }
  11.   }
 嵌套循环里的break和continue可以指定退出哪层循环,默认是当前的一层
  1.   /**
  2.    * 嵌套打印的继续和终端例子。<br>
  3.    * 大家注意语句前面的 OUTER: 和 INNER:的语法, 标签的名字加上冒号
  4.    */
  5.   public static void test3() {
  6.     OUTER: for (int i = 1; i <= 10; i++) { // 打印行数
  7.       System.out.println(); // 换行挪到这里,方便看清运行结果
  8.       INNER: for (int k = 1; k <= 3; k++) { // 每行打印的数量
  9.         System.out.print("*"); // 打印内容
  10.         if (i % 2 == 0) { // 内层如果发现行数为偶数行,则不再继续打印<
  11.           continue OUTER;
  12.         }
  13.         if (i % 5 == 0) { // 内层如果发现是可以被5整除的行,则退出外部循环
  14.           break OUTER;
  15.         }
  16.       }
  17.     }
  18.   }
for循环必须要掌握,而且要非常熟悉才可以。 如何设置起始,判断和后处理条件,如何继续和中断循环。

你可能感兴趣的:(java,.net)