00000004.htm
来自「水木清华BBS」· HTM 代码 · 共 308 行 · 第 1/2 页
HTM
308 行
<BR> <BR> 该 例 中 ,方 法 1用 一 个 逻 辑 表 达 式 包 含 了 所 有 的 闰 年 条 件 ,方 <BR>? 2使 用 了 if-else语 句 的 特 殊 <BR>形 式 ,方 法 3则 通 过 使 用 大 括 号 {}对 if-else进 行 匹 配 来 实 现 闰 年 的 <BR>? 断 。 大 家 可 以 根 据 程 序 来 <BR>对 比 这 三 种 方 法 ,体 会 其 中 的 联 系 和 区 别 ,在 不 同 的 场 合 选 用 适 <BR>? 的 方 法 。 <BR> <BR> 4.1.2多 分 支 语 句 switch <BR> <BR> switch 语 句 根 据 表 达 式 的 值 来 执 行 多 个 操 作 中 的 一 个 ,它 的 <BR> 般 格 式 如 下 : <BR> <BR> switch (expression){ <BR> case value1 : statement1; <BR> break; <BR> case value2 : statement2; <BR> break; <BR> ………… <BR> case valueN : statemendN; <BR> break; <BR> [default : defaultStatement; ] <BR> } <BR> <BR> <BR> 1.表 达 式 expression可 以 返 回 任 一 简 单 类 型 的 值 (如 整 型 、 实 ? <BR>、 字 符 型 ),多 分 支 语 句 把 <BR>表 达 式 返 回 的 值 与 每 个 case子 句 中 的 值 相 比 。 如 果 匹 配 成 功 ,则 <BR>? 行 该 case子 句 后 的 语 句 序 <BR>列 。 <BR> <BR> 2.case子 句 中 的 值 valueI必 须 是 常 量 ,而 且 所 有 case子 句 中 的 值 <BR> 是 不 同 的 。 <BR> <BR> 3.default子 句 是 任 选 的 。 当 表 达 式 的 值 与 任 一 case子 句 中 的 ? <BR>都 不 匹 配 时 ,程 序 执 行 <BR>default后 面 的 语 句 。 如 果 表 达 式 的 值 与 任 一 case子 句 中 的 值 都 不 <BR>? 配 且 没 有 default子 句 ,则 程 <BR>序 不 作 任 何 操 作 ,而 是 直 接 跳 出 switch语 句 。 <BR> <BR> 4.break语 句 用 来 在 执 行 完 一 个 case分 支 后 ,使 程 序 跳 出 switch语 <BR>? ,即 终 止 switch语 句 的 执 行 <BR>。 因 为 case子 句 只 是 起 到 一 个 标 号 的 作 用 ,用 来 查 找 匹 配 的 入 口 <BR>? 从 此 处 开 始 执 行 ,对 后 面 <BR>的 case子 句 不 再 进 行 匹 配 ,而 是 直 接 执 行 其 后 的 语 句 序 列 , 因 此 <BR> 该 在 每 个 case分 支 后 ,要 用 <BR>break来 终 止 后 面 的 case分 支 语 句 的 执 行 。 <BR> <BR> 在 一 些 特 殊 情 况 下 ,多 个 不 同 的 case值 要 执 行 一 组 相 同 的 操 <BR> ,这 时 可 以 不 用 break。 <BR> <BR> 5.case分 支 中 包 括 多 个 执 行 语 句 时 ,可 以 不 用 大 括 号 {}括 起 。 <BR> <BR> 6.switch语 句 的 功 能 可 以 用 if-else来 实 现 ,但 在 某 些 情 况 下 ,使 <BR> switch语 句 更 简 炼 ,可 读 性 强 <BR>,而 且 程 序 的 执 行 效 率 提 高 。 <BR> <BR> 7.举 例 : <BR> <BR> 例 4.3.根 据 考 试 成 绩 的 等 级 打 印 出 百 分 制 分 数 段 。 <BR> <BR> public class GradeLevel{ <BR> public static void main( String args[] ){ <BR> System.out.println("\n** first situation **"); <BR> char grade='C'; //normal use <BR> switch( grade ){ <BR> case 'A' : System.out.println(grade+" is 85~100"); <BR> break; <BR> case 'B' : System.out.println(grade+" is 70~84"); <BR> break; <BR> case 'C' : System.out.println(grade+" is 60~69"); <BR> break; <BR> case 'D' : System.out.println(grade+" is <60"); <BR> break; <BR> default : System.out.println("input error"); <BR> } <BR> System.out.println("\n** second situation **"); <BR> grade='A'; ∥creat error without break statement <BR> switch( grade ){ <BR> case 'A' : System.out.println(grade+" is 85~100"); <BR> case 'B' : System.out.println(grade+" is 70~84"); <BR> case 'C' : System.out.println(grade+" is 60~69"); <BR> case 'D' : System.out.println(grade+" is <60"); <BR> default : System.out.println("input error"); <BR> } <BR> System.out.println("\n** third situation **"); <BR> grade='B'; ∥several case with same operation <BR> switch( grade ){ <BR> case 'A' : <BR> case 'B' : <BR> case 'C' : System.out.println(grade+" is >=60"); <BR> break; <BR> case 'D' : System.out.println(grade+" is <60"); <BR> break; <BR> default : System.out.println("input error"); <BR> } <BR> } <BR> } <BR> 运行结果为 <BR> C:\>java GradeLevel <BR> **** first situation **** <BR> C is 60~69 <BR> **** second situation **** <BR> A is 85~100 <BR> A is 70~84 <BR> A is 60~69 <BR> A is <60 <BR> input error <BR> **** third situation **** <BR> B is >=60 <BR> <BR> <BR> 从 该 例 中 我 们 可 以 看 到 break语 句 的 作 用 。 <BR> <BR> 4.1.3 break语 句 <BR> <BR> 1.在 switch语 中 ,break语 句 用 来 终 止 switch语 句 的 执 行 。 使 程 序 <BR> switch语 句 后 的 第 一 个 语 句 <BR>开 始 执 行 。 <BR> <BR> 2.在 Java中 ,可 以 为 每 个 代 码 块 加 一 个 括 号 ,一 个 代 码 块 通 常 <BR> 用 大 括 号 {}括 起 来 的 一 段 <BR>代 码 。 加 标 号 的 格 式 如 下 : <BR> <BR> BlockLabel: { codeBlock } <BR> <BR> break语 句 的 第 二 种 使 用 情 况 就 是 跳 出 它 所 指 定 的 块 ,并 从 紧 <BR>? 该 块 的 第 一 条 语 句 处 执 <BR>行 。 其 格 式 为 : <BR> <BR> break BlockLabel; <BR> 例如: <BR> a:{…… //标记代码块a <BR> b: {…… //标记代码块b <BR> c: {…… //标记代码块c <BR> break b; <BR> …… //will not be executed <BR> } <BR> …… //will not be executed <BR> } <BR> …… //will not be executed <BR> } <BR> …… /execute from here <BR> } <BR> <BR> <BR> 3.与 C、 C++不 同 ,Java中 没 有 goto语 句 来 实 现 任 意 的 跳 转 ,因 为 go <BR>to语 句 破 坏 程 序 的 可 读 性 <BR>,而 且 影 响 编 译 的 优 化 。 但 是 从 上 例 可 以 看 出 ,Java用 break来 实 现g <BR>oto语 句 所 特 有 的 一 些 优 点 <BR>。 如 果 break后 所 指 定 的 标 号 不 是 一 个 代 码 块 的 标 号 ,而 是 一 个 ? <BR>句 ,则 这 时 break完 全 实 现 <BR>goto的 功 能 。 不 过 应 该 避 免 这 种 方 式 的 使 用 。
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?