Java2 lesson 本 Cycle 主 要 讲 Java 的 语 言 基 础 JAVA 程 序 设 计.2. The aim of this lesson is concept and method. 版 权 所 有 2001-2002 成 都 信 息 工 程 学 院 NIIT 信 息 技 术 学 院 赵 卓 宁 共 10 个 cycle 教 学 计 划 学 习 进 度 周 Java 课 程 学 习 量 学 习 [15] Java 1 1.1~3.24 [16] Java 2 4.1~5.28 [17] Java 3 6.1~6.34 [18] Java 4 7.1~8.11 [19] Java 5 8.12~9.16 [20] Java 6 10.1~11.26 [21] Java 7 12.1~13.26 [22] Java 8 14.1~15.26 [23] Java 9 16.1~17.18 [24] Java10 18.1~18.8 [25] SAMT2 1. 标 识 符 关 键 字 教 学 内 容 教 材 内 容 : 第 四 课 用 运 算 符 操 作 数 据 第 五 课 使 用 重 复 及 其 他 编 程 结 构 处 理 数 据 本 讲 您 将 学 习 如 下 内 容 : 运 算 符 向 方 法 传 递 参 数 编 程 结 构 (if 结 构 for 循 环 ) 数 组 标 识 符 标 识 符 (identifier): 程 序 员 对 程 序 中 的 各 个 元 素 加 以 命 名 时 使 用 的 命 名 记 号 称 为 标 识 符 Java 语 言, 识 符 是 以 字 母 下 划 线 (_) 美 元 符 ($) 开 始 的 一 个 字 符 序 列, 后 面 可 以 跟 字 母 下 划 线 美 元 符 数 字 长 度 没 有 限 制 区 分 大 小 写 不 得 使 用 Java 保 留 字 1
Java 关 键 字 具 有 专 门 的 意 义 和 用 途, 不 能 当 作 一 般 的 标 识 符 使 用, 这 些 标 识 符 称 为 关 键 字 ( 保 留 字 ) 八 种 基 本 数 据 类 型 基 本 数 据 类 型 ( 也 称 标 准 数 据 类 型 ) 是 Java 语 言 内 置 的 数 据 类 型 Java 编 译 器 掌 握 着 该 数 据 类 型 所 支 持 的 每 种 合 法 操 作 的 详 细 指 令 参 见 SB3.3 类 型 转 换 2. 数 据 类 型 当 Java 不 同 类 型 的 操 作 数 混 算 时 要 进 行 必 要 的 类 型 转 换 自 动 数 据 类 型 转 换 整 型, 实 型, 字 符 型 数 据 可 以 混 合 运 算 运 算 中, 不 同 类 型 的 数 据 先 转 化 为 同 一 类 型, 然 后 进 行 运 算, 转 换 从 低 级 到 高 级 ; Java 语 言 中 数 据 类 型 的 作 用 不 会 丢 失 信 息 的 类 型 转 换 列 表 向 Java 解 释 器 提 供 内 存 分 配 信 息, 如 对 整 型, 分 配 32 位, 浮 点 64 位 等 等 ; 向 Java 解 释 器 提 供 操 作 信 息 如 对 于 + 运 算 符 而 言, 将 5+6 解 释 成 加 法 运 算 ; 而 my + program 解 释 成 两 字 符 串 连 接 运 算 原 始 类 型 byte short char int long float 目 标 类 型 short,char,int,long,float,double int,long,float,double int,long,float,double long,float,double float,double double Java 不 象 c/c++ 那 样 允 许 自 动 类 型 转 换, 当 你 进 行 类 型 转 换 要 注 意 使 目 标 类 型 能 够 容 纳 原 类 型 的 所 有 信 息 2
数 据 类 型 的 级 别 低 高 byte,short,char > int > long > float > double 操 作 数 1 类 型 操 作 数 2 类 型 转 换 后 的 类 型 byte short char int int byte short char int long long byte short char int long float float byte short char int long float double double Java 的 常 量 常 量 是 不 能 被 程 序 修 改 的 固 定 值 常 量 的 类 型 是 通 过 书 写 方 式 表 达 的 Java 使 用 5 种 常 量 : 整 形 浮 点 型 布 尔 型 字 符 型 字 符 串 型 强 制 数 据 类 型 转 换 高 级 数 据 要 转 换 成 低 级 数 据, 需 用 到 强 制 类 型 转 换, 如 : int i; byte b=(byte)i; // 把 int 型 变 量 i 强 制 转 换 为 byte 型 整 形 常 量 按 不 同 的 数 制 分 为 三 种 : 十 进 制 数 : 例 :5, 10, 100, 631 八 进 制 数 : 例 :05, 012, 0144, 0771 十 六 进 制 数 : 例 :0X5, 0XA, 0X3F1 当 需 要 使 用 较 大 的 整 数 时, 请 在 整 常 数 后 加 L 或 l, 此 时 整 常 数 占 用 64 位 内 存 如 : 2L,0777L,0X123L 浮 点 常 量 3. 常 量 一 般 表 示 法 ( 十 进 制 ) 例 :3.14159, 0.567, 9777.12 和 数 学 中 的 实 数 没 有 区 别 科 学 记 数 法 : 例 :1.234e5, 90867e-2, 4e12 若 想 将 浮 点 常 量 变 成 单 精 度 ( 缩 减 到 占 内 存 32 位 ) 请 在 其 后 加 F 或 f 例 :2.1f 或 2.1F 3
布 尔 常 量 使 用 两 个 关 键 字 表 示 : true 表 示 真 ; false 表 示 假 ; 在 内 存 中 只 占 1 位 转 义 字 符 含 义 一 用 于 输 出 时 的 制 表 控 制 \n : 输 出 换 行 ; \t : 输 出 8 个 空 格 ( 相 当 tab 键 功 能 ); \b : 回 退 一 格 输 出 ( 重 叠 打 印 ); \f : 打 印 机 走 纸 ; 显 然, 当 去 掉 \ 时 \n, \t, \b, \f 只 表 示 字 符 常 量 本 身 的 值 字 符 常 量 Java 的 字 符 常 量 是 用 单 引 号 括 起 来 的 一 个 字 符 例 : a, x, A,?, $ 都 是 合 法 的 字 符 常 量 这 里 要 注 意 的 是 a 和 A 是 不 同 值 的 字 符 常 量 除 以 上 形 式 的 字 符 常 量 外,Java 还 使 用 以 \ 开 头 的 转 义 字 符. 转 义 字 符 含 义 二 用 来 输 出 有 特 殊 用 途 的 字 符 时 使 用 \ : 当 想 输 出 一 个 时 使 用 ; \ : 当 想 输 出 一 个 时 使 用 ; \\ : 输 出 一 个 \ ; 另 外 三 个 是 用 三 种 数 字 形 式 表 示 的 字 符, 要 用 必 须 记 住 每 个 字 符 的 八 进 制, 十 六 进 制, 及 在 Unicode 字 符 集 中 的 编 码. 转 义 字 符 Java 转 义 字 符 表 功 能 字 符 形 式 功 能 回 车 \r 单 引 号 换 行 \n 双 引 号 水 平 制 表 退 格 进 纸 反 斜 线 \t 八 进 制 模 式 \b 十 六 进 制 模 式 \f Unicode 字 符 字 符 形 式 \ \ \ddd \Xdd \Udddd 字 符 串 常 量 在 Java 中 字 符 串 常 量 是 用 双 引 号 括 起 来 的 字 符 序 列 a 是 字 符 常 量 ; a 是 字 符 串 常 量 ; 当 有 char c ; c= a ; 是 正 确 的, 而 且 c= a 是 错 误 的, 在 Java 中 字 符 串 是 作 为 对 象 处 理 的 4
byte ( 字 节 ) 整 变 量 : 4. 变 量 例 : byte b ; 变 量 b 可 用 来 存 取 -128 到 127 之 间 的 整 数,byte 型 整 变 量 占 用 内 存 8 位 Java 变 量 变 量 是 一 个 用 来 存 取 某 种 类 型 值 的 存 储 单 元, 变 量 中 存 储 的 值 可 以 在 程 序 的 执 行 过 程 中 修 改 变 量 中 存 储 的 值 必 须 与 它 的 类 型 相 适 应, 在 程 序 中 变 量 必 须 先 用 类 型 标 识 符 定 义, 再 对 其 进 行 存 取 操 作 int a, b ; a = 5 ; b = 6 ; a = a + b ; 例 : short x ; short ( 字 ) 整 变 量 变 量 x 可 存 取 -32768 到 32767 之 间 的 整 数,short 型 整 变 量 占 用 内 存 16 位 整 型 变 量 整 型 变 量 只 能 用 来 存 取 整 数, 根 据 用 户 希 望 存 取 的 整 数 的 大 小 可 以 使 用 四 种 不 同 的 类 型 标 识 符 来 定 义 整 型 变 量, 下 面 分 别 说 明 : 例 : int i ; int ( 双 字 ) 整 变 量 变 量 i 可 存 取 -2147483648 到 2147483647 之 间 的 整 数,int 型 整 变 量 占 用 内 存 32 位 5
long ( 四 字 ) 整 变 量 例 : long m ; 变 量 m 可 存 取 很 大 很 大 的 正 负 数 long 型 变 量 占 用 内 存 64 位 double ( 双 精 度 ) 浮 点 变 量 例 : double r ; 变 量 r 可 存 取 1.7e-308 到 1.7e+308 间 的 实 数, 它 占 用 内 存 64 位 浮 点 型 变 量 浮 点 型 也 称 实 型, 可 用 来 存 取 带 小 数 部 分 的 数 根 据 所 需 精 度, 使 用 两 种 不 同 类 型 标 识 符 说 明 字 符 型 变 量 字 符 型 变 量 使 用 char 类 型 标 识 符 说 明 例 : char c ; 变 量 c 可 用 来 存 放 Unicode 字 符 集 中 的 一 个 字 符, 它 占 用 内 存 16 位, 可 以 存 放 0 到 65535 的 正 整 数, 因 此 可 以 用 来 存 放 人 类 已 发 现 的 所 有 语 言 符 号, 这 就 使 Java 程 序 具 有 全 球 可 移 植 性 char c1,c2,c3,c4; c1= A ; c2=66; 66 是 B 的 编 码 c3=(char)(c1+32); 将 A 转 换 成 a c4=(char)(c2+32); 将 B 转 换 成 b float ( 单 精 度 ) 浮 点 变 量 例 : float f1 ; 变 量 f1 可 存 取 3.4e-038 到 3.4e+038 之 间 的 实 数, 它 占 用 内 存 32 位 布 尔 变 量 布 尔 型 变 量 使 用 boolean 类 型 标 识 符 说 明 例 : boolean b ; 变 量 b 可 用 来 存 取 true 或 false 值 6
关 于 变 量 的 说 明 在 同 一 作 用 域 内 不 允 许 出 现 同 名 变 量 变 量 的 作 用 域 与 定 义 它 的 位 置 有 关 class point static int num_points; int i, j; int[ ] t = new int[10]; int seti (int i) int old_i, old_j; old_j = j; this.i=i; return old_i; 赋 值 运 算 符 赋 值 运 算 符 是 一 个 等 号 = 例 : int a ; a = 5 ; a = a + 13 ; 这 里 有 三 点 请 注 意 : = 左 边 只 能 是 变 量 或 数 组 元 素, 不 能 是 常 量, 右 边 是 一 个 表 达 式 ; = 在 此 不 能 读 等 于, 必 须 读 作 赋 值 给 ; 在 = 两 边 类 型 不 一 致 时, 注 意 按 规 则 类 型 转 换 ; 算 术 运 算 符 5. 运 算 符 与 表 达 式 运 算 符 功 能 运 算 符 功 能 + 加 - 减 ( 可 作 单 目 减 运 算 ) * 乘 / 除 % 取 模 ( 返 回 除 法 的 余 数 ) ++ 递 增 ( 单 目 运 算 ) -- 递 减 ( 单 目 运 算 ) + = 相 加 并 赋 值 -= 相 减 并 赋 值 *= 相 乘 并 赋 值 /= 相 除 并 赋 值 %= 取 模 并 赋 值 说 明 : 不 能 对 boolean 型 数 据 使 用 这 些 运 算 符 运 算 符 Java 运 算 符 是 一 种 特 殊 字 符, 也 称 操 作 符, 它 指 明 用 户 想 对 操 作 数 进 行 的 某 种 操 作 表 达 式 是 运 算 符 常 量 和 变 量 的 组 合 运 算 符 按 其 操 作 个 数 可 分 为 : 单 目 运 算 符, 双 目 运 算 符 和 三 目 运 算 符 按 其 功 能 可 分 为 : 赋 值 运 算 符 算 术 运 算 符 关 系 运 算 符 位 运 算 符 和 布 尔 运 算 符 取 模 运 算 符 % 举 例 int x1, x2; double y1, y2; x1 =66; y1 =66.3; x2 =x1%10; 结 果 x2 为 6 y2 =y1%10; 结 果 y2 为 6.3 7
算 术 运 算 符 算 术 赋 值 运 算 符 左 边 的 操 作 数 必 须 是 变 量 或 数 组 元 素 举 例 a+= 3 等 价 于 a =a +3 x*=y+8 等 价 于 x =x*(y+8) x%=3 等 价 于 x =x% 3 关 系 表 达 式 用 关 系 运 算 符 将 两 个 表 达 式 ( 可 为 算 术 表 达 式, 赋 值 表 达 式, 字 符 表 达 式 ) 连 接 起 来 就 构 成 关 系 表 达 式 例 a>b a+b>b+c ( a=3 )>( b=5 ) false a < b true 功 能 自 增 自 减 运 算 符 的 使 用 ++i, --i 先 对 i 值 加 1 ( 减 1 ) 后 再 取 出 使 用 ; i++, i-- 先 取 出 i 值 使 用 后 加 1 ( 减 1 ) ; 自 增, 自 减 运 算 符 的 操 作 数 必 须 是 变 量 或 数 组 元 素 ; 例 : int i, j ; i=3 ; j= ++i; j 值 为 4, i 值 为 4 j= i ++; j 值 为 4, i 值 为 5 j= --i; j 值 为 4, i 值 为 4 j= i --; j 值 为 4, i 值 为 3 运 算 符 & ^ 逻 辑 运 算 符 名 称 逻 辑 与 逻 辑 或 逻 辑 异 或! 运 算 符 && 快 速 逻 辑 与 说 明 :& 与 &&( 与 ) 的 区 别 在 于 : 例 :!a&& (x<=y) 若!a 为 false, 则 不 再 计 算 (x<=y) 的 真 假 ; 而!a& (x<=y) 尽 管!a 为 false, 也 还 是 要 计 算 (x<=y) 的 真 假 ; 对 于!a (x=y) 与!a (x=y) 的 情 况 请 自 己 分 析 名 称 快 速 逻 辑 或 逻 辑 非 ( 单 目 ) 关 系 运 算 符 逻 辑 运 算 符 &,, ^,! 的 真 值 表 运 算 符 名 称 运 算 符 名 称 = = 等 于 < 小 于!= > 不 等 于 大 于 >= <= 大 于 或 等 于 小 于 或 等 于 说 明 : 关 系 运 算 符 运 算 结 果 非 true 即 false; 关 系 运 算 符 都 是 双 目 运 算 符 ; p q p&q p q!p p^q f f f f t f f t f t t t t t t t f f t f f t f t 说 明 :p, q 是 逻 辑 表 达 式 8
逻 辑 表 达 式 位 运 算 符 用 逻 辑 运 算 符 将 关 系 表 达 式 或 布 尔 量 ( 逻 辑 量 ) 连 接 起 来 构 成 逻 辑 表 达 式, 例 : int x=23; int y=98; boolean a=true; boolean b=false; boolean c=(x>y)&a; c 为 false boolean d=!a&&(x<=y); d 为 false 按 位 或 运 算 符 举 例 求 42 15 按 位 异 或 运 算 符 ^ 举 例 求 42^15 00101010 42 00001111 15 00101111 47 00101010 42 ^ 00001111 15 00100101 37 运 算 符 ~ & ^ << 含 义 位 非 ( 单 目 ) 位 与 位 或 位 异 或 左 移 运 算 符 >> >>> &= = ^= 位 运 算 符 含 义 右 移 右 移,0 填 充 高 位 位 与 并 赋 值 位 或 并 赋 值 位 异 或 并 赋 值 运 算 符 <<= >>= 含 义 左 移 并 赋 值 右 移 并 赋 值 >>>= 右 移 填 0 并 赋 值 说 明 : 位 运 算 符 的 操 作 只 能 是 整 形 ( 包 括 long, int, short, char), 位 操 作 是 对 整 数 的 机 内 码 进 行 测 试, 置 位 或 移 位 位 运 算 符 左 移 位 运 算 符 << 举 例 a=42, 求 a<< 2; 00101010 0 ( 移 出 ) ( 补 0) 结 果 : 10101000 (168) 右 移 位 运 算 符 >> 举 例 a=42, 求 a >> 2; 00101010 ( 移 出 ) 结 果 : 00001010 (10) 说 明 : 右 移 位 时 用 最 高 位 从 左 边 填 充 位 运 算 符 位 运 算 符 非 位 运 算 符 ~ 举 例 a=42, 求 ~a; ( 求 反 ) 按 位 与 运 算 符 & 举 例 求 42&15 ~ 00101010 11010101 00101010 42 & 00001111 15 00001010 10 无 符 号 右 移 运 算 符 >>> 举 例 例 1101100>>>2 结 果 :00110011 请 注 意 和 >> 的 区 别! 位 赋 值 运 算 符 (<<= 或 >>=) 举 例 例 b<<=2 相 当 于 b=b<<2 a>>=2 相 当 于 a=a >>2 9
条 件 运 算 符?: 其 他 运 算 符 格 式 : 表 达 式 1? 表 达 式 2 : 表 达 式 3 其 功 能 相 当 于 条 件 语 句 功 能 其 他 运 算 符 对 象 运 算 符 new new 用 于 为 对 象 分 配 内 存, 例 如 : int a[ ] =new int[30]; 例 :max=(a>b)? a:b; 语 句 相 当 于 if(a>b)max=a; else max=b; ( ) 和 [ ] 运 算 符 其 他 运 算 符 ( ) 可 用 来 改 变 运 算 顺 序, 用 于 构 成 子 表 达 式 [ ] 是 数 组 运 算 符, 可 用 于 定 义 数 组 大 小 或 确 定 数 组 元 素 下 标 值 例 如 :a[3], a[i++] 等 其 他 运 算 符 对 象 运 算 符 instanceof 用 于 测 试 某 对 象 是 否 是 某 类 的 实 例 例 如 : if (employeeobj instanceof Employee) 对 象 名 对 象 运 算 符 类 名 对 象 运 算 符 + 其 他 运 算 符 + 用 于 字 符 串 的 连 接, 例 如 : int age =20; System.out.println( He is +age+ years old. ); 对 象 运 算 符 其 他 运 算 符 用 于 对 包 中 的 类, 类 中 的 对 象 及 对 象 的 方 法, 属 性 进 行 限 定 操 作, 例 如 : System.out. println ( ); 输 出 结 果 为 :He is 20 years old. 类 名 对 象 名 方 法 10
运 算 符 的 优 先 级 数 组 运 算 方 向 优 先 顺 序 (TR3.19) 数 组 是 一 组 类 型 相 同 的 相 关 变 量 或 对 象 的 集 合, 它 采 用 静 态 存 储 分 配 的 方 法, 在 内 存 中 占 用 连 续 的 内 存 单 元 Java 语 言 的 数 组 必 须 通 过 类 型 定 义, 再 使 用 new 运 算 符 才 能 创 建 起 来,Java 语 言 的 数 组 可 通 过 数 组 名 length 方 式 取 得 其 长 度 值 ( 元 素 个 数 ) 数 组 的 成 员 元 素 是 通 过 数 组 名 与 下 标 的 结 合 来 访 问 的 依 据 数 组 下 标 的 多 少, 数 组 可 区 分 为 一 维 数 组 和 多 维 数 组 运 算 符 的 结 合 性 运 算 符 的 结 合 性 是 个 比 较 复 杂 的 问 题. 举 例?: 结 合 性 左 结 合, 嵌 套 出 现 时 从 右 向 左 求 值 例 : c=i >20?3:i<=10? 1:2, =,+=,*= 等 也 是 左 结 合, 嵌 套 出 现 时 从 右 向 左 求 值 例 : int i, j ; j = 1; i = 60/3/2; 右 结 合 j+= i += 2; 左 结 合 数 组 概 述 数 组 表 示 占 据 内 存 空 间 的 许 多 变 量 数 组 的 各 个 元 素 通 过 索 引 来 区 分 下 标 从 零 开 始! 数 组 中 所 有 元 素 的 数 据 类 型 必 须 相 同 数 组 的 声 明 数 据 类 型 [] 变 量 数 据 类 型 [][] 变 量 int [] number; int [][] number; 数 组 概 述 Java 中 的 数 组 6. 数 组 数 组 是 真 正 的 第 一 类 对 象 java.util.arrays 数 组 能 够 保 存 任 意 类 型 数 据, 甚 至 其 他 数 组 要 使 用 数 组, 必 须 首 先 实 例 化 一 个 Array 对 象, 如 果 没 有 Array 对 象, 那 么 只 有 一 个 空 数 组 变 量 int myintegers[]; myintegers = new int[25]; 数 组 声 明 和 实 例 化 往 往 同 时 进 行 int myintegers[] = new int[25]; 11
一 维 数 组 一 维 数 组 的 定 义 一 维 数 组 仅 有 一 个 下 标 type Var_name[ ]; 或 : type[ ] Var_name; 例 如 : int a[ ]; 或 : int[ ] a; 一 维 数 组 的 初 始 化 自 动 初 始 化 当 Array 对 象 实 例 化 时 一 维 数 组 所 含 有 的 元 素 数 目 是 维 数 所 指 定 的 个 数 数 组 是 空 的 每 个 元 素 都 有 根 据 变 量 类 型 初 始 化 为 默 认 值 直 接 初 始 化 如 果 已 知 数 组 的 元 素, 可 不 必 显 式 地 定 义 数 组 维 数 int[] myintegers = 157,236,228,179,557; char[] mychar = 'H','e','l','l','o'; 通 常 :( 因 不 能 确 定 数 据 ) 先 声 明 后 赋 值 说 明 : 一 维 数 组 数 组 下 标 值 从 0 始, 上 限 是 Size-1; int 创 型 建 数 一 组 元 维 素 数 占 组 用 内 存 32 分 位, 配 其 内 他 存 类 型 单 类 元 推 ; 数 组 格 元 式 素 具 有 同 类 型 变 量 的 性 质 ; a length 的 值 Var_name=new 是 5; type[size]; 例 : 为 上 面 定 义 的 数 组 a 分 配 存 储 : a=new int[5]; 此 时 数 组 a 占 用 内 存 的 示 意 图 如 下 : a[0] a[1] a[2] a[3] a[4] 设 置 元 素 一 维 数 组 Char keystrokes[] = new char[500]; Char keychar; for (short i = 0; i < 500;i++) keychar = System.in.read(); if (keychar == -1) break; else keystrokes[i]= keychar; int highscores[] = new char[50]; for (short i = 0; i < 50;i++) highscores[i]= 999; 一 维 数 组 一 维 数 组 的 定 义 和 创 建 的 联 用 格 式 type var_name[ ]=new type[size]; 或 : type [ ]var_name=new type[size]; 多 维 数 组 Java 不 支 持 多 维 数 组, 但 允 许 创 建 数 组 的 数 组 int grid[][] = new int [10][10] 举 例 : int a[ ]=new int [5]; 或 : int [ ] a=new int [5]; 效 果 与 前 面 的 方 法 一 样 12
多 维 数 组 Java 数 组 的 应 用 (2) 二 维 数 组 的 定 义 和 创 建 例 : int a[ ][ ]=new int[3][4]; 或 将 第 二 维 分 别 定 义 和 创 建 如 下 : int a[ ][ ]=new int[3][ ]; a[0]=new int[4]; a[1]=new int[4]; a[2]=new int[4]; 两 种 方 法 定 义 和 创 建 了 同 一 数 组 a[3][4] 应 用 二 public Point [] createarray() Point [] pvar; pvar = new Point [10]; for (int i = 0;i < 10;i++) pvar[i] = new Point(i,i+1); return pvar; 多 维 数 组 Java 数 组 的 应 用 (2) 上 一 页 中 创 建 的 二 维 数 组 占 用 存 储 的 示 意 图 : 第 0 行 第 1 行 第 2 行 第 0 列 第 1 列 第 2 列 第 3 列 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[2][0] a[1][1] a[2][1] a[1][2] a[2][2] a[1][3] a[2][3] 说 明 : 实 际 上 Java 语 言 没 有 象 其 他 语 言 那 样 的 多 维 数 组, 只 有 数 组 的 数 组, 本 例 中 将 a[0], a[1],a[2] 看 成 一 个 数 组 名, 每 个 数 组 是 有 4 个 元 素 的 一 维 数 组 应 用 二 createarray main pvar this Executions Stack Point[] Heap Memory Point x 0 y 1 Point x 1 y 2 Point x 2 y 3 Java 数 组 的 应 用 (1) 应 用 一 public char [] createarray() char [] cvar; cvar = new char [26]; for (int i = 0;i < 26;i++) cvar[i] = 'A' + 1; return cvar; createarray cvar this Executions Stack Heap Memory char[] A B C D Z 演 示 5.D.2 练 习 5.P.2 课 堂 练 习 冒 泡 排 序 Java 数 组 的 应 用 39,67,18,7,6,8,23,94,52 main 13
条 件 语 句 冒 泡 排 序 参 考 答 案 独 立 实 践 SB5.27 Java 语 言 的 条 件 语 句 包 括 各 种 形 式 的 if 语 句 和 多 分 支 语 句 switch ( 开 关 语 句 ) If else 结 构 (TR3.22) 语 法 If() 语 句 ; Else 语 句 ; 7. 编 程 结 构 switch 结 构 语 法 switch( 变 量 名 ) case 表 达 式 样 1: 语 句 ; break;... case 表 达 式 样 n: 语 句 ; break; default: 语 句 ; 条 件 语 句 (TR3.23) case 子 句 表 达 式 样 的 值 valuei 必 须 是 常 量, 而 且 所 有 case 子 句 中 的 值 应 是 不 同 的 控 制 语 句 的 基 本 概 念 与 条 件 语 句 循 环 语 句 程 序 设 计 语 言 使 用 控 制 语 句, 根 据 数 据 的 状 态 控 制 程 序 的 执 行 流 程 while 循 环 语 法 (TR3.25) 根 据 结 构 化 程 序 设 计 原 理, 所 有 的 程 序 均 由 顺 序 选 择 和 循 环 三 种 控 制 流 程 构 成 while( 布 尔 表 达 式 ) // 注 意 循 环 变 量 初 始 化 语 句 ; break; // 使 程 序 退 出 while 循 环 体 countinue; // 把 控 制 还 给 while 循 环 开 始, // 并 跳 过 后 面 的 语 句 14
do while 循 环 语 法 do 语 句 ; break; 循 环 语 句 (TR3.27) // 循 环 体 至 少 执 行 一 次 // 使 程 序 退 出 while 循 环 体 countinue; // 把 控 制 还 给 while 循 环 开 始, // 并 跳 过 后 面 的 语 句 while( 布 尔 表 达 式 ); 变 体 2: 注 意 : for 语 句 的 几 种 变 体 结 构 sum=0; for(i=1;;i++) sum=sum+i; 这 是 一 种 死 循 环 结 构 它 相 当 于 如 下 语 句 组 : sum=0; for(i=1;true;i++) sum=sum+i; for 循 环 语 法 (TR3.28) 循 环 语 句 for( 初 始 化 表 达 式 ; 测 试 表 达 式 ; 增 值 / 减 值 表 达 式 ) 语 句 ; for 语 句 的 几 种 变 体 结 构 变 体 3: sum=0; for(i=0; i<=100;) sum=sum+i; i++; 把 对 increment 的 修 改 移 到 了 循 环 体 内. 变 体 4: for( ; ; ) // 循 环 体 这 也 是 一 个 死 循 环. for 语 句 的 几 种 变 体 结 构 之 所 以 介 绍 这 几 种 for 循 环 的 几 种 变 体 结 构, 是 因 为 他 们 功 能 更 加 强 大, 使 用 更 加 灵 活. 变 体 1: sum=0; i=1; for(;i<=100;i++) sum=sum+i; for 语 句 的 几 种 变 体 结 构 变 体 5: for(i=1,sum=0;i<=100;i++,sum=sum+i); 这 也 就 是 说 :for 语 句 的 (;;) 内 可 以 用 逗 号 隔 开 放 进 很 多 表 达 式. 15
break 语 句 continue 语 句 返 回 语 句 return 程 序 转 移 语 句 return 语 句 return 语 句 从 当 前 方 法 中 退 出, 返 回 到 调 用 该 方 法 的 语 句 处, 并 从 紧 跟 该 语 句 的 下 一 条 语 句 继 续 程 序 的 执 行 返 回 语 句 有 两 种 格 式 : return expression return break 语 句 break 语 句 用 在 switch 语 中 break 语 句 用 在 Java 中 可 以 为 每 个 代 码 块 加 一 个 括 号, 一 个 代 码 块 通 常 是 用 大 括 号 括 起 来 的 一 段 代 码 加 标 号 的 格 式 如 下 : BlockLabel: codeblock break 语 句 的 第 二 种 使 用 情 况 就 是 跳 出 它 所 指 定 的 块, 并 从 紧 跟 该 块 的 第 一 条 语 句 处 执 行 break BlockLabel; // 注 释 语 句 用 于 单 行 注 释 注 释 从 // 开 始, 终 止 于 行 尾 /* */ 用 于 多 行 注 释 注 释 从 /* 开 始, 到 */ 结 束, 且 这 种 注 释 不 能 互 相 嵌 套 /** */ 是 Java 所 特 有 的 doc 注 释 它 以 /** 开 始, 到 */ 结 束 这 种 注 释 主 要 是 为 支 持 JDK 工 具 javadoc 而 采 用 的 javadoc 能 识 别 注 释 中 用 标 记 @ 标 识 的 一 些 特 殊 变 量, 并 把 doc 注 释 加 入 它 所 生 成 的 HTML 文 件 continue 语 句 continue 语 句 用 在 for 语 中 用 continue 跳 转 到 括 号 指 明 的 外 层 循 环 中, 这 时 的 格 式 为 : continue outerlable; 8. 向 方 法 传 递 参 数 16
Java 中 的 参 数 传 递 向 方 法 传 递 参 数 Java 中 的 参 数 传 递 依 赖 于 所 使 用 的 数 据 类 型 按 值 传 递 基 本 类 型 的 数 据 所 有 原 始 数 据 类 型 的 参 数 都 是 传 值 的 原 始 值 不 能 被 调 用 方 法 而 改 变 调 用 方 法 仅 获 得 变 量 的 一 份 拷 贝 例 如 TR4.13 按 引 用 传 递 对 象 数 据 参 数 变 量 的 内 存 地 址 ( 引 用 ) 被 传 给 被 调 用 的 方 法 被 调 用 方 法 对 对 象 所 做 的 任 何 改 变 将 会 反 映 到 调 用 方 法 中 例 如 TR4.14 Java 中 的 参 数 传 递 举 例 举 例 SB4.4 Do you have made a progress today? 向 方 法 传 递 参 数 举 例 17