Java之算数运算符
【摘要】 Java之算数运算符
运算符
运算符介绍
- 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
1)算术运算符
2)赋值运算符
3)关系运算符[比较运算符]
4)逻辑运算符
5)位运算符[需要二进制基础]
6)三元运算符
@[TOC]
1. 算数运算符
1.1 介绍
1.2 算术运算符一览
1.3 案例演示
%
取模 ,取余,在 % 的本质 看一个公式:a % b = a - a / b * b
System.out.println(10 / 4); //从数学来看是2.5, java中 2
System.out.println(10.0 / 4); //java是2.5
double d = 10 / 4;//java中 10 / 4 = 2, 2=>2.0
System.out.println(d);// 是2.0
// % 取模 ,取余
// 在 % 的本质 看一个公式: a % b = a - a / b * b
// -10 % 3 => -10 - (-10) / 3 * 3 = -10 + 9 = -1
// 10 % -3 = 10 - 10 / (-3) * (-3) = 10 - 9 = 1
// -10 % -3 = (-10) - (-10) / (-3) * (-3) = -10 + 9 = -1
System.out.println(10 % 3); //1
System.out.println(-10 % 3); // -1
System.out.println(10 % -3); //1
System.out.println(-10 % -3);//-1
- ++的使用,以及前自增与后自增的区别
//++的使用
int i = 10;
i++;//自增 等价于 i = i + 1; => i = 11
++i;//自增 等价于 i = i + 1; => i = 12
System.out.println("i=" + i);//12
System.out.println("==============");
/*
作为表达式使用
前++:++i先自增后赋值
后++:i++先赋值后自增
*/
int a = 8;
int b = ++a; //等价于 a=a+1; b=a;
System.out.println("a=" + a + "b=" + b); // 9 9
System.out.println("==============");
int j = 8;
int k = j++; // 等价 k =j; j=j+1;
System.out.println("k=" + k + "j=" + j);//8 9
1.4 细节说明
1.5 算数运算符的面试题
- 变量 i 会把值赋给临时变量 temp ,再进行后自增的值为 2 ,之后 temp 再把值赋给 变量 i,所以 i = 1;
int i = 1;//i->1
i = i++; //规则使用临时变量: (1) temp=i;(2) i=i+1;(3)i=temp;
System.out.println(i); // 1
- 执行顺序跟上面差不多,只是要变换下 前自增
int i=1;
i=++i; //规则使用临时变量: (1) i=i+1;(2) temp=i;(3)i=temp;
System.out.println(i); //2
1.6 自增,自减课堂练习(1)
ArithmeticOperator.java
int i1 = 10;
int i2 = 20;
int i = i1++;
System.out.print("i="+i);//10
System.out.println("i2="+i2);//20
i = --i2;
System.out.print("i="+i);//19
System.out.println("i2="+i2);//19
- 使用内存分析法 分析
- 第一步: i1 先赋值给变量 i 再自己自增加1,此时 i1 = 11,所以 i = 10,i2 = 20
- 第二步:i2 此时为 20,i2 先自减减1,再赋值给 i ,此时 i2 = 19,i = 19
- 运行结果:
1.7 自增,自减课堂练习(2)
- 假如还有 59 天放假,问:合 xx 个星期零 xx
//1.需求:
//假如还有59天放假,问:合xx个星期零xx天
//2.思路分析
//(1) 使用int 变量 days 保存 天数
//(2) 一个星期是7天 星期数weeks: days / 7 零xx天leftDays days % 7
//(3) 输出
//3.走代码
int days = 59;
int weeks = days / 7;
int leftDays = days % 7;
System.out.println(days + "天 合" + weeks + "星期零" + leftDays + "天");
- 定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度。[234.5]
- 这里注意的一点:如果直接拿上面给定的公式的话,输出的结果就会出问题,
5/9*(华氏温度-100)
这个公式,5/9结果是一个0.几的结果,而直接返回给 0 ,后面的结果都为 0,所以要把公式改为5.0 / 9 * (huaShi - 100)
,在 5 后面多加一个 0 ,就不会出现这种情况。(考虑精度问题)
//1.需求
//定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为
//:5/9*(华氏温度-100),请求出华氏温度对应的摄氏温度
//
//2思路分析
//(1) 先定义一个double huaShi 变量保存 华氏温度
//(2) 根据给出的公式,进行计算即可5/9*(华氏温度-100)
// 考虑数学公式和java语言的特性
//(3) 将得到的结果保存到double sheShi
//3走代码
double huaShi = 234.6;
double sheShi = 5.0 / 9 * (huaShi - 100);
System.out.println("华氏温度" + huaShi + " 对应的摄氏温度=" + sheShi);
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)