原文: http://www.java2000.net/p11512
在所有的循环中,最常用的就是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(); // 换行
- }
- }
- /**
- * 嵌套打印的继续和终端例子。<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;
- }
- }
- }
- }