荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: icefire (冰火), 信区: Java
标  题: [转载] java教程(六)(转寄) (转载)              DLW (转寄)
发信站: 深大荔园晨风站 (Sun Mar  1 14:45:27 1998), 转信

【 以下文字转载自 icefire 的信箱 】
【 原文由 icefire.bbs@bbs.sjtu.edu.cn 所发表 】
发信人: DLW (飞鸟), 信区: program
标  题: java教程(六)(转寄) (转载)
发信站: 饮水思源站 (Wed Aug 27 15:56:16 1997) , 转信





                             第 一 部 分 Java入 门

                                第 四 章   流 控 制 (续 )

                                   郁欣 孙元 王曦东 王克宏



     4.1.4返 回 语 句 return

     return语 句 从 当 前 方 法 中 退 出 ,返 回 到 调 用 该 方 法 的 语 句 处 ,
 并 从 紧 跟 该 语 句 的 下 一 条 语
句 继 续 程 序 的 执 行 。 (有 关 方 法 的 内 容 ,我 们 将 在 第 六 章 详 细 讲
 述 。 前 面 例 子 中 的 main( )就
是 一 个 方 法 )。 返 回 语 句 有 两 种 格 式 :

     1.return expression

     返 回 一 个 值 给 调 用 该 方 法 的 语 句 ,返 回 值 的 数 据 类 型 必 须 和
 方 法 声 明 中 的 返 回 值 类 型
一 致 。 可 以 使 用 强 制 类 型 转 换 来 使 类 型 一 致 。

     2.return

     当 方 法 说 明 中 用 void声 明 返 回 类 型 为 空 时 ,应 使 用 这 种 格 式
,它 不 返 回 任 何 值 。

     return 语 句 通 常 用 在 一 个 方 法 体 的 最 后 ,以 退 出 该 方 法 并 返
回 一 个 值 。 Java中 ,单 独 的
return语 句 用 在 一 个 方 法 体 的 中 间 时 ,会 产 生 编 译 错 误 ,因 为 这 时
 会 有 一 些 语 句 执 行 不 到 。 但
可 以 通 过 把 return语 句 嵌 入 某 些 语 句 (如 if-else)来 使 程 序 在 未 执 行
 完 方 法 中 的 所 有 语 句 时 退 出
,例 如 :

    int method (int num) {
    ∥   return  num;    ∥will cause compile time error
          if (num>0)
                return  num;
          …… ∥ may or may not be executed
                              ∥depending on the value of num


                                         § 4.2循 环 语 句

     循 环 语 句 的 作 用 是 反 复 执 行 一 段 代 码 ,直 到 满 足 终 止 循 环 的
 条 件 为 止 ,一 个 循 环 一 般
应 包 括 四 部 分 内 容 :

     1.初 始 化 部 分 (initialization):用 来 设 置 循 环 的 一 些 初 始 条 件 ,
 如 计 数 器 清 零 等 。

     2.循 环 体 部 分 (body):这 是 反 复 循 环 的 一 段 代 码 ,可 以 是 单 一 的
 一 条 语 句 ,也 可 以 是 复 合 语
句 。

     3.迭 代 部 分 (iteration):这 是 在 当 前 循 环 结 束 ,下 一 次 循 环 开 始
 前 执 行 的 语 句 ,常 常 用 来 使 计
数 器 加 1或 减 1。

     4.终 止 部 分 (termination):通 常 是 一 个 布 尔 表 达 式 ,每 一 次 循 环
都 要 对 该 表 达 式 求 值 ,以 验 证
是 否 满 足 循 环 终 止 条 件 。

     Java中 提 供 的 循 环 语 句 有 :while语 句 ,do-while语 句 和 for语 句 ,下
面 分 别 介 绍 。

     4.2.1while语 句

     while语 句 实 现 "当 型 "循 环 ,它 的 一 般 格 式 为 ;

    [initialization]
    while (termination){
          body;
          [iteration;]
    }


     1.当 布 尔 表 达 式 (termination)的 值 为 true时 ,循 环 执 行 大 括 号 中
的 语 句 。 并 且 初 始 化 部 分 和
迭 代 部 分 是 任 选 的 。

     2.while语 句 首 先 计 算 终 止 条 件 ,当 条 件 满 足 时 ,才 去 执 行 循 环
 体 中 的 语 句 。 这 是 "当 型 "循
环 的 特 点 。

     4.2.2 do-while语 句

    do-while 语句实现"直到型"循环,它的一般格式为:
    [initialization]
    do {
         body;
       [iteration;]
    } while (termination);


     1.do-while语 句 首 先 执 行 循 环 体 ,然 后 计 算 终 止 条 件 ,若 结 果 为
true,则 循 环 执 行 大 括 号 中 的
语 句 ,直 到 布 尔 表 达 式 的 结 果 为 false。

     2.与 while语 句 不 同 的 是 ,do-while语 句 的 循 环 体 至 少 执 行 一 次 ,
 这 是 "直 到 型 "循 环 的 特 点 。

     4.2.3 for语 句

     for语 句 也 用 来 实 现 "当 型 "循 环 ,它 的 一 般 格 式 为 :

     for (initialization; termination; iteration){

     body;

     }

     1.for语 句 执 行 时 ,首 先 执 行 初 始 化 操 作 ,然 后 判 断 终 止 条 件 是
 否 满 足 ,如 果 满 足 ,则 执 行 循
环 体 中 的 语 句 ,最 后 执 行 迭 代 部 分 。 完 成 一 次 循 环 后 ,重 新 判 断
 终 止 条 件 。

     2.可 以 在 for语 句 的 初 始 化 部 分 声 明 一 个 变 量 ,它 的 作 用 域 为
 整 个 for 语 句 。

     3.for语 句 通 常 用 来 执 行 循 环 次 数 确 定 的 情 况 (如 对 数 组 元 素
 进 行 操 作 ),也 可 以 根 据 循 环
结 束 条 件 执 行 循 环 次 数 不 确 定 的 情 况 。

     4.在 初 始 化 部 分 和 迭 代 部 分 可 以 使 用 逗 号 语 句 ,来 进 行 多 个
 操 作 。 逗 号 语 句 是 用 逗 号
分 隔 的 语 句 序 列 。 例 如 :

    for( i=0, j=10; i<j; i++, j--){
        ……
    }


     5.初 始 化 、 终 止 以 及 迭 代 部 分 都 可 以 为 空 语 句 (但 分 号 不 能
 省 ),三 者 均 为 空 的 时 候 ,相
当 于 一 个 无 限 循 环 。

     4.2.4 continue语 句

     1.continue语 句 用 来 结 束 本 次 循 环 ,跳 过 循 环 体 中 下 面 尚 未 执
行 的 语 句 ,接 着 进 行 终 止 条
件 的 判 断 ,以 决 定 是 否 继 续 循 环 。 对 于 for语 句 ,在 进 行 终 止 条 件
 的 判 断 前 ,还 要 先 执 行 迭 代
语 句 。 它 的 格 式 为 :

     continue;

     2.也 可 以 用 continue跳 转 到 括 号 指 明 的 外 层 循 环 中 ,这 时 的 格
式 为

     continue outerLable;

     例 如 :

    outer:      for( int i=0; i<10; i++ ){      ∥外层循环
                      for( int j=0; j<20; j++ ){   ∥内层循环
      if( j>i ){
                             ……
                              continue outer;
                          }
                           ……
                      }
                     ……
                }


     该 例 中 ,当 满 足 j>i的 条 件 时 ,程 序 执 行 完 相 应 的 语 句 后 跳 转
 到 外 层 循 环 ,执 行 外 层 循 环
的 迭 代 语 句 i++;然 后 开 始 下 一 次 循 环 。

     4.2.5举 例

     例 4.4 下 例 分 别 用 while、 do-while和 for语 句 实 现 累 计 求 和 。

    public class Sum{
          public static void main( String args[] ){
                System.out.println("\n** while statement **");
                int n=10,sum=0;         ∥initialization
                while( n>0 ){           ∥termination
                     sum+=n;           ∥body
                     n--;        ∥iteration
                }
                System.out.println("sum is "+sum);
                System.out.println("\n** do_while statement **");
                n=0;              ∥initialization
                sum=0;
                do{
                      sum+=n;           ∥body
                     n++;        ∥iteration
               }while( n<=10 );  ∥termination
                System.out.println("sum is "+sum);
                System.out.println("\n** for statement **");
                sum=0;
                for( int i=1; i<=10; i++){
              ∥initialization,termination,iteration
                      sum+=i;
                }
                System.out.println("sum is "+sum);
          }
    }
    运行结果为:
    C:\>java Sum
    ** while statement **
    sum is 55
    ** do_while statement **
    sum is 55
    ** for statement **
    sum is 55
    可以从中来比较这三种循环语句,从而在不同的场合选择合适的语句。
    例4.5 求100~200间的所有素数
    public class PrimeNumber{
      public static void main( String args[] ){
        System.out.println(" ** prime numbers between 100 and 200 **");
           int n=0;
    outer:for(int i=101;i<200;i+=2){ ∥outer loop
      int k=15;     ∥select for convinence  for(int j=2;j<=k;j++){ ∥inner
loop
                            if( i%j==0 )
                                  continue outer;
                      }
                     System.out.print("  "+i);
                      n++;       ∥output a new line
                      if( n<10 )     ∥after 10 numbers
                            continue;
                     System.out.println();
                      n=0;
                }
                System.out.println();
          }
    }
    运行结果为:
    C:\>java PrimeNumber
     ** prime numbers between 100 and 200 **
    101  103  107  109  113  127  131  137  139  149
    151  157  163  167  173  179  181  191  193  197
    199


     该 例 通 过 一 个 嵌 套 的 for语 句 来 实 现 。 !U4§ 4.3例 外 处 理 语 句

     例 外 处 理 语 句 包 括 try、 catch、 finally以 及 throw语 句 。 与 C、 C+
+相 比 ,例 外 处 理 语 句 是
Java所 特 有 的 。 我 们 将 在 第 八 章 作 专 门 的 介 绍 。 !U4§ 4.4 注 释 语
 句

     Java中 可 以 采 用 三 种 注 释 方 式 :

    1     ∥ 用于单行注释。注释从∥开始,终止于行尾。
    2     /* … */ 用于多行注释。注释从/*开始,到*/结束,且这种注释不能互相嵌套。
    3     /** … */ 是Java所特有的doc注释。它以/**开始,到*/结束。这种注释主要是
为支持JDK工具javadoc而采用的。javadoc能识别注释中用标记@标识的一些特殊变量,并把
doc注释加入它所生成的HTML文件。对javadoc的详细讲述可参见附录。


      (未 完 待 续 )

--
※ 来源:.饮水思源 bbs.sjtu.edu.cn.[FROM: 202.112.26.40]
--
※ 转载:.深大荔园晨风站 bbs.szu.edu.cn.[FROM: bbs.szu.edu.cn]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店