Java语言程序设计(2).pptx_第1页
Java语言程序设计(2).pptx_第2页
Java语言程序设计(2).pptx_第3页
Java语言程序设计(2).pptx_第4页
Java语言程序设计(2).pptx_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

语言程序设计 刘炯 西安电子科技大学 通信工程学院 2 第三章 控制语句 n学习目标 l声明布尔类型和书写布尔表达式 l区分条件和非条件的 比较运算符含义 大于 = 大于等于 = 等于 != 不等于 注: 1、相等的比较运算符是两个 等号(=) 2、字符也可以进行比较。实际 上是对字符的Unicode进行 比较。如:(a A) = true 5 nBoolean运算符 l又称为逻辑运算符(Logical Operator) l对boolean值运算,得到新的boolean值 比较运算符名称含义 !非(NOT)取反。true false, false true public class LeapYearVerifier /* Main method */ public static void main(String args) / 用户输入年份 String yearString = JOptionPane.showInputDialog(“Enter a year“); int year = Integer.parseInt(yearString); / 是否为闰年 boolean isLeapYear = ( (year % 4 = 0) / 显示 String display = “Year “ + year + “ isLeapYear = “ + isLeapYear; JOptionPane.showMessageDialog(null, display); 11 例:简单的数学学习工具 n程序随机产生两个一位整数number1和number2,显示给学生如 “What is 7 + 9 ?”,学生在输入对话框中敲入答案之后,程序显示一 个消息对话框,判定答案是true还是false。 import javax.swing.JOptionPane; public class AdditionTest /* Main method */ public static void main(String args) / 产生两个随机数(int类型) int n1 = (int) (System.currentTimeMillis() % 10); int n2 = (int) (System.currentTimeMillis() * 7 % 10); / 提示用户输入结果 String answerString = JOptionPane.showInputDialog( “What is “ + n1 + “ + “ + n2 + “?“); int answer = Integer.parseInt(answerString); / 计算结果 String result = n1 + “ + “ + n2 + “ = “ + answer + “ is “ + (n1 + n2 = answer); JOptionPane.showMessageDialog(null, result); 12 位运算符 n当操作整型数据时,可以使用位运算符(即:按位运算) l二进制级别的运算 l当用于boolean运算时, boolean expression statement(s) true false if ( (i0) else if (score = 80.0) grade = B; else if (score = 70.0) grade = C; else if (score = 60.0) grade = D; else grade = F; if (score = 90.0) grade = A; else if (score = 80.0) grade = B; else if (score = 70.0) grade = C; else if (score = 60.0) grade = D; else grade = F; 等效于 建议采用这种书写风格: 避免了深层缩进; 程序可读性好 23 n跟踪这个程序: if (score = 90.0) grade = A; else if (score = 80.0) grade = B; else if (score = 70.0) grade = C; else if (score = 60.0) grade = D; else grade = F; 假设 score = 72.0 比较结果为 false 24 if (score = 90.0) grade = A; else if (score = 80.0) grade = B; else if (score = 70.0) grade = C; else if (score = 60.0) grade = D; else grade = F; n跟踪这个程序: 假设 score = 72.0 比较结果为 false 25 if (score = 90.0) grade = A; else if (score = 80.0) grade = B; else if (score = 70.0) grade = C; else if (score = 60.0) grade = D; else grade = F; n跟踪这个程序: 假设 score = 72.0 比较结果为 true 26 if (score = 90.0) grade = A; else if (score = 80.0) grade = B; else if (score = 70.0) grade = C; else if (score = 60.0) grade = D; else grade = F; n跟踪这个程序: 假设 score = 72.0 grade = C 27 if (score = 90.0) grade = A; else if (score = 80.0) grade = B; else if (score = 70.0) grade = C; else if (score = 60.0) grade = D; else grade = F; Next statement n跟踪这个程序: 假设 score = 72.0 退出 if 语句 28 nelse 和 if 的匹配 lelse子句与同一块中离得最近的if子句相匹配 int i = 1; int j = 2; int k = 3; if (i j) if (i k) System.out.println(A); else System.out.println(B); int i = 1; int j = 2; int k = 3; if (i j) if (i k) System.out.println(A); else System.out.println(B); 等效于 29 如果想让else同第一个if匹配, 则需要使用花括号: 推荐写法: int i = 1; int j = 2; int k = 3; if (i j) if (i k) System.out.println(A); else System.out.println(B); int i = 1; int j = 2; int k = 3; if (i j) if (i k) System.out.println(A); else System.out.println(B); 30 n提示1: n提示2: if (number % 2 = 0) even = true; else even = false; 等效于boolean even = (number % 2 = 0); if (even = true) System.out.println(“.“); 等效于if (even) System.out.println(“.“); 建议使用这种形式 因为如果不小心写为: if (even = true) System.out.println(“.“); 将很难被发现。 31 举例:个人所得税计算 n个人所得税: l起征点:3500元 l收入-起征点,差值部分: 1、不超过1500元的部分,税率3% 2、超过1500元至4500元的部分,税率10% 3、超过4500元至9000元的部分,税率20% 4、超过9000元至35000元的部分,税率25% 5、超过35000元至55000元的部分,税率30% 6、超过55000元至80000元的部分,税率35% 7、超过80000元的部分,税率45% n如某人的收入为10000元,需要缴纳的个人所得税为: l10000 - 3500 = 6500 l1500 * 3% + (4500 - 1500) * 10% + (6500 - 4500) * 20% = 45 + 300 + 400 = 745 元 32 n简便算法: ldelta = 月收入 - 起征点,如果在: l0 1500: delta * 3% l1500 4500: delta * 10% - 105 l4500 9000: delta * 20% - 555 l9000 35000: delta * 25% - 1005 l35000 55000: delta * 30% - 2755 l55000 80000: delta * 35% - 5505 l 80000: delta * 45% - 13505 33 import javax.swing.JOptionPane; public class PersonalTaxCalculator public static void main(String args) String salaryString = JOptionPane.showInputDialog( “请输入月薪(个税起征点:2000)“); double salary = Double.parseDouble(salaryString); double delta = salary - 2000; double tax = 0; if (delta 0 int x = a + (+a); int a = 0; int x = +a + a; 53 计算表达式的规则 n规则1:可能的情况下,从左向右依次计算所有的 子表达式。 n规则2:根据运算符的优先级进行运算。 n规则3:对优先级相同的相邻运算符,根据结合方 向进行运算。 54 n应用这些规则,表达式3+4*45*(4+3)-1的计算如 下: 3 + 4 * 4 5 * (4 + 3) - 1 3 + 16 5 * (4 + 3) - 1 19 5 * (4 + 3) - 1 19 5 * 7 - 1 19 35 - 1 19 34 false (1) 从左边开始, 4*4 是第一个 可以计算的表达式 (2) 接下来计算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论