




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 体重指数计算器,项目-体重指数计算器,项目目标 掌握Java语言的基本符号; 掌握Java中的基本数据类型; 掌握各种运算符的使用; 掌握程序结构中的选择结构。,项目-体重指数计算器,项目任务 体重指数,又称身体质量指数,英文为Body Mass Index,简称BMI),是用体重公斤数除以身高米数平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。男性低于20, 女性低于19,属于过轻;男性20-25,女性19-24,属于适中;男性25-30,女性24-29,属于过重;男性30-35,女性29-34,属于肥胖;男性高于35,女性高于34,属于非常肥胖。专家指出最
2、理想的体重指数是22。本项目的任务编写程序,当输入性别,身高,体重后能计算出体重指数。 示例:codeBMI.java,项目分析,项目完成思路 输入相应的信息包括性别,身高,体重。 根据输入的身高,体重计算体重指数。 根据性别及计算出的体重指数给出相应的健康报告。,项目分析,需解决问题 项目中需要输入,输出体重指数等信息,这些用来保存输入,输出的数据应该保存到变量中,变量该如何使用? 不同的数据需要保存到不同类型的变量中,Java中都有哪些基本数据类型? 数据的加工,比如体重指数的计算需要借助除法和乘法运算来完成,Java还有哪些运算符? 项目的运行,将根据男性和女性性别不同,体重指数位于不同
3、的区间,健康的报告情况也不同,不同的情况不同的处理,选择结构需要应用其中。选择结构如何使用?,技术准备,变量 Java的基本符号 数据类型 数据类型转换 运算符 选择结构,变量,变量作用: 用于存储数据输入、输出和中间数据。 声明变量: 数据类型 变量名; 注意:变量在使用前必须声明,变量声明,例如: int x; double radius; char a;,变量声明,变量通常有初值,可以在一步中说明变量并对其初始化,例如: int x = 1; double d = 1.4;,标识符,是用户定义的用于表示变量名、类名、接口名、方法名、方法的参数名等符号。,标识符,命名规则 由字母、数字、下
4、划线_、美元符号$组成 首字母不能是数字 不能是保留字(50个) 区分大小写 标识符名称最好有意义,Java的基本符号,数字常量 整数:100,31,100(以0开头表示8进制,以0 x开头表示16进制) 小数:0.5 字符编码 使用16位的Unicode编码,能表示所有自然语言字符,Java的基本符号,字符常量 用单引号括起来的单个字符,比如:A,2,也可以是中等非英文字符 字符串常量 用双引号括起来的字符序列,比如:“欢迎” 布尔常量:只有两个值:true和false,数据类型,Java中共三种基本数据类型: 数值型 字符型 布尔型,数据类型,数值字面量,字面量是在程序中直接出现的基本类型
5、的数据值。 int i = 34; long l = 1000000l; float f = 100.2f;或float f = 100.2F; double d = 100.2d;或double d=100.2D; 注意:浮点型字面量默认为double型。,字符数据类型,字符数据类型char用于表示单个字符。如: char c = A; char c = 4; Char c = 98; Char c = ,布尔数据类型,布尔数据类型来自布尔代数,它的值域包括两个值:真(true)和假(false)。例如: boolean lightsOn = true; boolean lightsOn =
6、 false;,类型转换,精度由高到底排序: double float long int short byte,数值类型转换,可以将低精度的值赋给高精度类型的变量 比如:double i=10; 但是,如果不进行强制类型转换,就不能将高精度类型的值赋给低精度类型的变量。 如: float f = 10.1;(错),类型转换,类型转换是一种操作,它把一种数据类型的值转换成另一种数据类型。 用于由高精度向低精度转换时; 例如: float f = (float)10.1; int i = (int)f;,数值类型转换,Java中当两个类型不同的运算对象进行二元运算时,Java 自动 把精度较低的类
7、型转换成另一个精度较高的类型。,数值运算时,表达式提升规律如下:,操作数中如果有double类型,则都会转换成double类型; 如果有float类型,则都会转换成float类型; 如果有long类型,则都会转换成long类型; 其他的byte, short, char, int 自动提升为int,例:,int a=1; double b=2.5; double c=a + b;,1.0,3.5,结果 c,2.5,考虑下面的程序是否能正常编译?,public class TypeConvert public static void main(String args) byte b1 = 3;
8、byte b2 = 4; byte b3=b1+b2; ,运算符,算术运算符包括:+, -, *, / 和 %。 整数除法的结果是整数,如5/2= 2而不是2.5。考虑1/2=? 运算符%得出除法的余数,如5%2=1 。 例:codeMathematicsOperatorTest.java,赋值运算符,进行变量说明后,可以用赋值语句给它赋一个值,赋值语句语法如下: variable = value; variable = expression; 注意:在赋值语句中,左边变量的数据类型必须与右边值的数据类型相容。,例如: int x = 1; double radius = 1.0; char
9、a = A; x = x + 5*(3/2);,赋值语句,复合赋值运算符,运算符例等价于 +=i+=8i = i+8 -=f-=8.0f = f-8.0 *=i*=8i = i*8 /=i/=8i = i/8 %=i%=8i = i%8 codeCompoundOperator.java,增量运算符和减量运算符,前置增量/减量运算符:变量先加1或减1,再参与表达式中的运算。 +x 或者 x 后置增量/减量运算符:变量先参与表达式的运算,再加1或减1。 x+ 或者 x,自增、自减运算符,x = 1; y = x+; y = +x; 上述语句运行后x和y的值分别是多少? y = x - -; y
10、= - - x; codeAddOne.java,比较运算符,运算符名称例结果 大于12false =大于等于1=2false =等于1=2false !=不等于1!=2true,codeCompareOperator.java,逻辑运算符,运算符 名称描述 ! 非 逻辑否定,取反 System.out.println(“radius 的值是” + radius),程序基本流程,顺序结构 选择结构 循环结构,选择结构if语句,简单if语句只在条件为真时执行。其语法如下: if (布尔表达式) 语句(组); ,If语句,例如: if (i = 0) codeIfTest.java,if-else
11、语句,if (布尔表达式) 布尔表达式为真时执行的语句(组); else 布尔表达式为假时执行的语句(组); ,if-else语句,if (a b) max = b; else max = a; ,嵌套的if语句,例如: if (ik) if (jk) System.out.println(“i 和 j 比 k 大”); else System.out.println(“i 比 k 小”);,嵌套的if语句,多重选择if语句的书写风格: if(条件1)语句1 else if (条件2)语句2 else if (条件3)语句3 . else 语句; 这个风格可以避免深层缩进并使程序容易阅读。 c
12、odeIfElseTest.java,switch语句,Java提供switch语句来有效的处理多重条件。 switch (表达式) case 值1: 语句组1; break; case 值2: 语句组2; break; case 值N: 语句组N; break; defalut:缺省语句组; ,switch语句,switch语句应遵从下述规则: 表达式switch-expression的结果类型只能为char、byte、short或int型值。 value1valueN 必须与switch-expression的值具有相同的数据类型。当switch-expression的值与case语句的值
13、相匹配时,执行该case语句中的语句。(每个case语句都顺序进行) 关键字break是可选的。break语句终止整个switch语句。若break语句不存在,下一个case语句将被执行。 默认情况(default)是可选的,它用来执行指定情况都不为真时的操作。默认情况总是出现在switch语句块的最后。,switch语句,Java提供switch语句来有效的处理多重条件。 例如: SwitchTest.java SwitchTest2.java 注意 表达式结果类型:byte,short,int或者char case匹配 成功只确定程序流程的入口,结束还得依靠break,项目学做,Java中
14、在JDK5.0之后可以使用Scanner类完成控制台的输入操作。通过“import java.util.Scanner”将类导入;创建该类的对象“Scanner sc=new Scanner(System.in)”;使用Scanner类的各种方法实现输入操作。将输入及中间计算的结果保存到相应变量中, 根据不同的体重计算结果和性别使用选择结构输出健康报告。 参考代码:codeBMI.java,知识拓展,保留字 系统预先定义的、用于特殊用途的符号,都是小写的。比如:public、class、char,转义字符,换行符 nu000a 回车键 ru000d 退格键 bu0008 Tab键 tu0009 斜杠u005c 单引号u0027 双引号”u0022,注释,单行注释:/注释内容 多行注释
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届甘肃省民乐一中物理高二第二学期期末经典试题含解析
- 冰箱的课件教学课件
- 黑龙江省绥化市普通高中2025年物理高一第二学期期末预测试题含解析
- 安徽省2025年高一物理第二学期期末质量跟踪监视试题含解析
- 2025届黑龙江省齐齐哈尔市普通高中联谊校物理高一第二学期期末考试模拟试题含解析
- 二零二五年度道路路灯安装工程安全协议范本
- 二零二五版智慧城市解决方案采购合同书
- 2025版企事业单位班车租赁运营服务合同样本
- 二零二五年度车库买卖及车位租赁合同
- 2025版文化旅游节宣传策划服务合同
- 2025年皮革行业市场调查报告
- 车辆共有合同风险协议
- 积极心理学视角的心理韧性研究
- 《严重心律失常》课件示例
- 某高速公路品质工程监理实施细则
- 电线发生火灾的风险分析报告
- 医院DRG培训课件
- 机械设备故障应急预案
- 江苏省南通市2022-2023学年第二学期期中考试初二英语试卷(含答案)
- 新产品开发流程和步骤
- 基于MATLABSimulink电力系统短路故障分析与仿真
评论
0/150
提交评论