day04_运算符
Posted 沐沐霸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day04_运算符相关的知识,希望对你有一定的参考价值。
今日内容
零、 复习昨日
一、运算符
二、流程控制语句(1)
零、 复习昨日
见晨考
一、作业
4 用合适的变量名,以及数据类型声明以下数据
姓名,年龄,性别,身高,体重,余额,家庭住址
并将结果输出
6 完成打印输出Java所有基本数据类型及所占字节数,格式如效果图。
类型 所占字节 取值范围 占多少位
byte 1字节 -2^7~2^7-1 8位
short 2字节 -2^15~2^15-1 16位
int 4字节 -2^31~2^31-1 32位
...
7 定义两个变量
int a = 10
int b = 20 ,
交换两个变量的值
sout(a);// 20
sout(b);// 10
package com.qf.homework;
/**
* --- 天道酬勤 ---
*
* @author QiuShiju
* @desc
*/
public class Demo1
public static void main(String[] args)
/**
* 4 用合适的变量名,以及数据类型声明一下数据
* 姓名,年龄,性别,身高,体重,余额,家庭住址
* 并将结果输出
*/
String name = "蛮族之王";
int age = 35;
char sex = '男';
// 高
double height = 160.0;
// 重量
double weight = 80.0;
double money = 450.0;
// address 地址
String address = "弗雷尔卓德";
System.out.println(name );
System.out.println(age );
System.out.println(sex );
System.out.println(height );
System.out.println(weight );
System.out.println(money );
System.out.println(address );
System.out.println("------- 组词咋造句 --------" );
// 后续自己补全
System.out.println("我叫"+name+",今年"+age+"岁" );
// 先写完整的句子,选中替换的值,引号引号,加号加号,中间变量
System.out.println("我叫"+name+",今年"+age+"岁" );
System.out.println("-----------------------" );
// 输出结果
// \\t 制表符
System.out.println("类型\\t所占字节\\t取值范围\\t占多少位\\t" );
System.out.println("byte\\t1字节\\t-2^7~2^7-1\\t8位\\t" );
System.out.println("short\\t2字节\\t-2^15~2^15-1\\t16位\\t" );
System.out.println("int\\t4字节\\t-2^31~2^31-1\\t32位\\t" );
System.out.println("----------------------" );
// 交换位置
int a = 100;
int b = 200;
System.out.println("交换前: a = " + a );
System.out.println("交换前: b = " + b );
// 声明第三个变量,用于临时的接收其中一个变量
int c = a;
a = b;
b = c;
System.out.println("交换后: a = " + a );
System.out.println("交换后: b = " + b );
一、运算符
运算:
- 赋值
- 算术
- 关系
- 逻辑
- 三目
1.1 赋值运算
- =
- int a = 1; 将数值1赋值给变量a
- String name = “zs”; 将字符串zs赋值给变量name
- +=,-=,*=,/=
- 简化写法
- 默认进行类型转换,防止出现 = 等号两边类型不匹配的情况
package com.qf.operation;
/**
* --- 天道酬勤 ---
*
* @author QiuShiju
* @desc 赋值运算符
*/
public class Demo1
public static void main(String[] args)
int a = 1;
a += 2;// a = a + 2;
System.out.println(a );
double d = 3.0;
d += 2; // d = d + 2;
System.out.println(d );
int i = 1;
//i += 1;
i = i + 1;
System.out.println(i );
short s = 1;
// s += 1; // += 可以默认进行类型转换
s = (short)(s + 1);
System.out.println(s );
1.2 算术运算
+ - * / % ++ , --
+
数字相加,字符串拼接-
相减*
相乘- / 相除,整数相除除不尽,取整舍弃小数
- % 取余/取模,除不尽的余数, 判断奇偶性
- ++ , – 自增自减1
- ps: 操作符两边数据类型不一致,结果为向大的一方转换
package com.qf.operation;
/**
* --- 天道酬勤 ---
*
* @author QiuShiju
* @desc 演示算术运算
*/
public class Demo2
public static void main(String[] args)
System.out.println("----------- 加法 ---------" );
/**
* + 加法
* 1) 数字相加,如果符号两边的数据类型不一致,
* 运算结果会向大的一方转换
* 2) 字符串拼接
*/
int a = 1;
int b = 2;
double d = 3.0;
// int c = a + b;
// System.out.println(c );
System.out.println(a + b );
System.out.println(a + d );// double d2 = a + d;
short s = 1;
int i = 1;
// short+int,结果是int
int s2 = s + i;
// 加法实现字符串拼接
int a3 = 1;
String s3 = "1";
System.out.println(a3 + s3 );
System.out.println(1 + 1 + "1" + 1 );
System.out.println(1 + 1 + "1" + 1 + 1);
System.out.println(1 + 1 + "1" + 1 + 1);
System.out.println("21" + 1 );
System.out.println("211" + 1 );
// 总结: 字符串前一个是拼接,字符串后全是拼接
System.out.println("----------- 减法 ---------" );
/**
* - 减法
* 只能做数字相减
*/
int a4 = 1;
int a5 = 1;
System.out.println(a4 - a5 );
double d5 = 1.0;
System.out.println(a5 - d5 );
/**
* * 乘法
* 只能做数字相乘
*/
System.out.println(2 * 3 );// 6
System.out.println(2.0 * 3 );// 6.0
System.out.println("----------- 除法 ---------" );
/**
* / 除法
* 1) 做数字相除,
* 如果整数相除,除不尽舍弃小数,直接取整
* 如果想保留小数,就只能将其中一个数变为浮点型即可
*/
System.out.println(10 / 2 );
System.out.println(10 / 3 );
System.out.println(10 / 4 );
System.out.println(10.0 / 4 );
System.out.println(10.0 / 3 );
System.out.println("----------- 取余/取模 ---------" );
/**
* % 取余或者取模
* 除不尽的余数
* 取余有个非常常见的场景: 用来判断奇偶性
*/
System.out.println(10 % 3 );// 余1
System.out.println(10 % 4 );// 余2
// 任何一个整数除以2的余数如果是0,该数是偶数
System.out.println(10 % 2 );
System.out.println(9 % 2 );
System.out.println("----------- 自增/自减 ---------" );
/**
* ++ 自增1
* -- 自减1
* 用法:
* i++
* ++i
*/
int in = 1;
in++; // 本身自增1
System.out.println(in );
in--; // 本身自减1
System.out.println(in );
int ix = 1;
++ix; // 本身自增1
System.out.println(ix );
--ix; // 本身自减1
System.out.println(ix );
int iy = 1;
// int iz = iy++; // ++在后,先用后增,iz=1,iy=2
int iz = ++iy; // ++在前,先增后用,iz=2,iy=2
// 无论先+后+,本身一定会自增1
System.out.println("iz = "+ iz );
System.out.println("iy = "+ iy );
int aa = 10;
int bb = 10;
int cc = 10;
aa = bb++;// a=10,b=11
cc = --aa;// a=9,c=9
bb = ++aa;// a=10,b=10
aa = cc--;// a = 9,c=8
System.out.println("aa = "+aa);
System.out.println("bb = "+bb);
System.out.println("cc = "+cc);
int x = 4;
int y = (x++) + (++x) + (x*10);
System.out.println("x = "+x);// 6
System.out.println("y = "+y);// 70
1.3 练习
使用[运算符]进行编程
定义变量 double salary,给其赋值,后
1、计算输出实领工资
其中物价津贴为基本工资的4%
房租津贴为基本工资的2.5%
社保为基本工资1.25%
话费补贴为100
2、输出一张完整的工资条
package com.qf.operation;
/**
* --- 天道酬勤 ---
*
* @author QiuShiju
* @desc
*/
public class Demo3
/**
* 如何写题?
* 1 读题
* 2 千万不要,等全部想通再下手
* 3 应该是能写多少写多少
* 4 写不下去的时候,重点!!!!!
* 越是写不下去,这时需要 记录 你此时的思路
* 越详细越好,等我来给你解决
* 5 解决完后,再写
*----------------------------------
* 如果发现写错,也需要梳理思路,对照正确思路
* 我声明变量a = 1,
*/
public static void main(String[] args)
double salary = 10000;// 基本工资
double wjjt = salary * 0.04;// 物价津贴
double fzjt = salary * 0.025;// 房租津贴
double sb = salary * 0.0125;// 社保
int bt = 100;// 话费补贴
salary = salary + wjjt + fzjt - sb + bt;
System.out.println("实领工资: " + salary );
// 输出工资条
1.4 关系运算符
数据之间的关系, 大小小于相等这些关系
> 大于 >= 大于等于 < 小于 <= 小于等于 == 相等 != 不等
关系运算的结果是: true和false,即boolean类型
package com.qf.operation;
/**
* --- 天道酬勤 ---
*
* @author QiuShiju
* @desc 演示关系运算
*/
public class Demo4
// 结果单词 result
public static void main(String[] args)
/**
* > >= <= == !=
* 结果都是布尔型
*/
int a = 1;
int b = 2;
boolean r1 = a > b;
System.out.println(r1 );
System.out.println(a > b );// F
System.out.println(a < b );// T
System.out.println(a <= b );// T
System.out.println(a >= b );// F
// 以上几个符号(> >= < <=)两边都是数字
// 判断两个值是否相等,使用==
System.out.println(a == b );// F
// 判断两个值是否不相等,使用!=
System.out.println(a != b );// T
// 以上2个符号(== , != )这两边可以是数字,也可以是字符串
String name1 = "张三";
String name2 = "张小三";
System.out.println(name1 == name2 );// F
System.out.println(name1 != name2 );// T
// 总结: 将来这些关系运算都是要配合if,elseif,以及循环等使用
// 练习: 定义两个变量x和y,判断x是否大于y
int x = 1;
int y = 10;
boolean r2 = x > y;
System.out.println("x是否大于y: " + r2 );
// 练习: 判断定义的这个整数是否是偶数
int num = 9;
boolean r3 = num % 2 == 0;
System.out.println("num 是否是偶数 "+ r3 );
/**
* boolean r3 = num % 2 == 0;
* 运算符有优先级: 算术 > 关系 > 赋值
* 以上式子运算是:
* 1) 先计算num % 2,得到结果余数1
* 2) 再判断 1 == 0,得到结果false
* 3) 最后将结果赋值给r3
*/
1.5 逻辑运算符
与 &
或 |
非 !
短路与 &&
短路或 ||
写法:
布尔表达式1 & 布尔表达式2
布尔表达式1 && 布尔表达式2 布尔表达式1 | 布尔表达式2 布尔表达式1 | | 布尔表达式2
布尔表达式是指,结果是布尔值的式子
运算结果: 是布尔值,即true.false
完整式子
boolean 变量 = 布尔表达式1 & 布尔表达式2 ;
package com.qf.operation;
/**
* --- 天道酬勤 ---
*
* @author QiuShiju
* @desc 演示 逻辑运算
*/
public class Demo5
public static void main(String[] args)
/**
* & | !
* 与 或 非
* --------------
* 语法:
* boolean r1 = 布尔表达式1 & 布尔表达式2;
* 执行流程:
* 先执行表达式1,再执行表达式2
* 然后两个表达式结果都是true,那么整体结果是就是true
* 只要有一个是false,那么整体结果就是false
* 全对才对,一错就错 (领结婚证)
*/
int a = 1;
int b = 2;
boolean r1 = a > b & a < b;
System.out.println(r1 );
System.out.println("------------" );
System.out.println(1 > 0 & 1 > 0 );// T & T = T
System.out.println(1 > 0 & 1 < 0 );// T & F = F
System.out.println(1 < 0 & 1 > 0 );// F & T = F
System.out.println(1 < 0 & 1 < 0 );// F & F = F
System.out.println("----------" );
/**
* boolean r2 = 布尔表达式1 | 布尔表达式2;
* 一对就对,全错才错
*/
System.out.println(1 > 0 | 1 > 0 );// T | T = T
System.out.println(1 > 0 | 1 < 0 );// T | F = T
System.out.println(1 < 0 | 1 > 0 );// F | T = T
System.out.println(1 < 0 | 1 < 0 );// F | F = F
System.out.println("----------------" );
/**
* 短路与(逻辑与) &&
* 短路或(逻辑或) ||
* 何为短路? 短路就是不执行
* 当前面的表达式能决定整体结果时,后面的表达式短路不执行
*/
System.out.println(1 > 0 & 1 > 0 );// T & T = T
System.out.println(1 < 0 && 1/0 == 0 );// F & T = F
System.out.println(1 > 0 || 1/0 == 0 );// F & T = F
System.out.prday04_05 逻辑运算符表达式
num += 1 等价于 num = num + 1
逻辑运算符
and 全true则true
条件1 and 条件2
5>3 and 3>2 ===> true
5>3 and 3<2 ===>false
or 有true则true
5>3 or 6<2 ===>true
not 取反
not 5>3 ===>false
not 5<3 ===>true
a>b and c>d or not f
判断优先级:最好加括号
not > and > or
以上是关于day04_运算符的主要内容,如果未能解决你的问题,请参考以下文章