关系运算符
、<、>=、<=、==、!=用于判断两个数据之间的大小关系,计算结果为boolean,如果成立返回为true,否则为false
==和=的区别:
- k=100;这是赋值运算符,意思是将=右边的计算结果储存在=左边的变量中
- k==100这是比较计算,意思是判断k是否值为100;如果是则返回true,否则false
!=意思是判断是否不等于,表示如果相等时返回false,否则返回true - 由于浮点数无法精确存放,所以判断k==1.0这个写法是错误的,正确写法: a-b的绝对值小于1e-6
Java提供了一个工具类Math,其中包含一个abs()的方法实现求绝对值 - 内部实现是通过StrictMath实现的,其中通过对等类提供计算实现
- Math.sqrt() : 计算平方根
- Math.abs() : 取绝对值
- Math.ceil(): 天花板的意思,就是逢余进一
- Math.floor() : 地板的意思,就是逢余舍一
- Math.round(): 四舍五入,float时返回int值,double时返回long值
double kk=-15.6;
System.out.println(Math.ceil(kk));//-15.0
System.out.println(Math.floor(kk));//-16.0
System.out.println(Math.round(kk));//-16
Math.abs(d1-1)<1e-6 判断浮点类型的变量d1的值是否为1
需求:
用户输入身高和提供,计算对应的BMI指数值。BMI指数(英文为Body Mass Index,简称BMI),是用体重千克数除以身高米数的平方得出的数字,是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准
偏瘦:18.5以下、正常:18.5-23.9、超重:≥24、偏胖:24~27.9、肥胖:≥28。
- 如何接受用户键盘录入
- 可以通过 Scanner 类来获取用户的键盘输入数据
- 使用方法:
Scanner s = new Scanner(System.in); //创建一个Scanner对象,通过这个对象中的方法才能实现接受用户键盘录入数据
//提供的方法有nextXxx()用于接受对应数据类型的用户键盘录入,自动进行数据类型换换,如果转换失败则报异常InputMismatchException
Scanner sc = new Scanner(System.in);
int kk=sc.nextInt();
double dd=sc.nextDouble();
如何编码实现
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入身高,单位为米");
double height = sc.nextDouble();//代码执行到这里时,会阻塞等待用户输入数据,如果用户输入合法则自动赋值给变量height。直接回车则继续等待用户输入,如果输入数据不合法则报错
System.out.println("请输入体重,单位为千克");
double weight = sc.nextDouble();
double bmi = weight / Math.pow(height, 2);
if (bmi < 18.5)
System.out.println("偏瘦");
else if (bmi < 23.9) //等价于 bmi>=18.5 并且 bmi<23.9
System.out.println("正常");
else {
System.out.println("超重");
if (bmi < 27.9)
System.out.println("偏胖");
else
System.out.println("肥胖");
}
}
}
如何实现接受用户的键盘录入数据
//建立一个变量指向键盘录入
Scanner sc = new Scanner(System.in);
//通过这个变量读取用户键盘录入的数据,如果用户不输入则一直等待,如果输入的数据不是浮点数,则报错
double height=sc.nextDouble();
//变量sc中是Java提供的具体实现方法nextDouble实现从键盘读取一个浮点数,如果要求用户输入int,则方法为nextInt,。。。
如何实现屏幕输出
System.out.println("具体需要输出的内容");输出内容后会自动换行,如果不需要换行,则使用方法System.out.print("")
System.out.println("num:"+num);意思是输出【num:123】
System.out.println("num:num")意思是输出【num:num】
逻辑运算符
并且&&、或者 ||、不是 !。注意:逻辑计算支持短路操作
表达多个条件之间的关系。例如年龄大于等于18并且年龄小于65【age>=18 && age<65】
&&:与运算,含义是两个条件必须同时成立,可以翻译为并且
//年龄大于等于18并且年龄小于65
age>=18 && age<65
//算法规则:同真则真,其余为假
||:或运算,含义是两个条件中成立一个即可,可以翻译为或者
//年龄小于18岁或者年龄不小于65
age<18 || age>=65
//算法规则:同假则假,否则为真
!:非运算,含义是不是,用于对某个条件进行否定
//年龄不小于18
//写法1:
age >=18
//写法2:
!(age<18)
//算法规则:非真则假,非假则真
赋值运算符
=,+=,-=,*=,/=,%=
int k=100; 含义是将100赋值存储在k对应的存储单元中
k=k+3可以简写为k+=3 -= */ /=类似,自动类型转换