建设部网站安全事故,俄罗斯乌克兰地图,wordpress个人博客模板,电商网站建设最好的公司——Java中运算符是一种特殊的符号#xff0c;用来进行数据的运算、赋值和比较等 思维导图 一.算术运算符
1.什么是算术运算符 ——算术运算符是用于数据类型值之间#xff0c;使用2个或以上的数据进行运算 2.算术运算符概括 算术运算符 解释示例#xff0c;-正号用来进行数据的运算、赋值和比较等 思维导图 一.算术运算符
1.什么是算术运算符 ——算术运算符是用于数据类型值之间使用2个或以上的数据进行运算 2.算术运算符概括 算术运算符 解释示例-正号负号10-10,-加减10 1011 - 10*/乘除12 * 312 / 3%取模取余3 % 4 前置先自增后取值 后置先取值后自增 a 3; b a; a 3; c a; -- 前置--先自减后取值 后置--先取值后自减 a 3; b --a; a 3; c a--; 字符串相加str hellostrhello 3.一个小case快速了解算术运算符
public class Test {public static void main(String[] args) {//,-正负号int num1 10;int num2 -10;System.out.println(num1);//10System.out.println(num2);//-10//,-加减法int num3 10 5;int num4 15 - 10;System.out.println(num3);//15System.out.println(num4);//5//*,/乘除法int num5 12 * 5;int num6 14 / 4;System.out.println(num5);//60System.out.println(num6);//3//%取余int n 14 % 5;System.out.println(n);//4//:自增运算符int a 10;int data1 a;//后置先取值后自增System.out.println(a);//11System.out.println(data1);//10a 10;int data2 a;//前置先自增后取值System.out.println(a);//11System.out.println(data2);//11//--自减运算符int b 10;int ele1 b--;System.out.println(b);//9System.out.println(ele1);//10b 10;int ele2 --b;System.out.println(b);//9System.out.println(ele2);//9//字符串相加String str1 我爱你;String str2 中国;System.out.println(str1 str2);//我爱你中国}
} 4.算术运算符的细节讨论 1除(/)整数相除时得到的是一个整数若是有小数部分则舍去小数部分保留整数部分[向下取整] public class Test {public static void main(String[] args) {//除(/)整数相除时得到的是一个整数若是有小数部分则舍去小数部分保留整数部分int a 10;int b 4;int c a / b;//10 / 4 2.5,舍去小数0.5留下2System.out.println(c);//2double num1 10.0;double num2 3;double num num1 / num2;//浮点数之间的相除则需要保留小数部分System.out.println(num);//3.3333333333333335}
} 2进行取模运算时a % b a - a / b * b对于正负数均适用 public class Test {public static void main(String[] args) {//进行取模运算时a % b a - (a / b) * b对于正负数均适用//整数的取模运算int num1 -10 % 3;//-10 % 3 -10 - (-10 / 3) * 3 -1System.out.println(num1);//-1int num2 10 % 3;//10 % 3 10 - 10 / 3 * 3 1System.out.println(num2);//1int num3 -10 % -3;//-10 % -3 -10 - (-10 / -3) * (-3) -1System.out.println(num3);//-1int num4 10 % -3;//10 % -3 10 - (10 / (-3)) * (-3) 1System.out.println(num4);//1//浮点数的取模运算double data1 10.3 % 3;//10.3 % 3 10.3 - 10.3 / 3 * 3 1.3System.out.println(data1);//1.3000000000000007double data2 -10.3 % 3;//-10.3 % 3 -10.3 - (-10.3 / 3) * 3 -1.3System.out.println(data2);//-1.3000000000000007}
} 5.思考以下代码输出
public class Test {public static void main(String[] args) {int i 10;i i;System.out.println(i);//10//为什么是10//也按照前置后置的规则进行运算}
} 二.赋值运算符
1.什么是赋值运算符 —— 赋值运算符用于将某个数据值赋给相对应的数据类型变量 2.赋值运算符的分类 基本赋值运算符 复合赋值运算符、-、*、/、%等 3.一个小case快速了解赋值运算符
public class Test {public static void main(String[] args) {//基本赋值运算符int num 10;//把10赋值给了int类型的变量numSystem.out.println(num);//10//复合赋值运算符、-、*、/、%等int data 10;data 10;//data data 10;data - 5;//data data - 5data * 4;//data data * 4data / 3;//data data / 3;data % 5;//data data % 5;}
} 4.赋值运算符的细节讨论 1运算顺序从右往左 2赋值运算符的左边必须为变量赋值运算符的右边可以为变量、表达式、常量值 public class Test {public static void main(String[] args) {//运算顺序从右往左int data 30;//把右边的30赋给左边的int类型变量dataSystem.out.println(data);//30//赋值运算符的左边必须为变量赋值运算符的右边可以为变量、表达式、常量值int num1 data;//左边为变量int num2 data;//左边为表达式int num3 20;//左边为常量值System.out.println(num1);//30System.out.println(num2);//30System.out.println(num3);//20}
} 3复合赋值运算符会进行类型转换 public class Test {public static void main(String[] args) {//复合赋值运算符会进行类型转换byte b 10;int a 10;b a;//b (byte)(b a):会自动把int类型的a转化为byte类型System.out.println(b);//20char ch 12;int num 86;ch num;//ch (char)(ch num):会自动把int类型的num转化为char类型System.out.println(ch);//bdouble data 13.14;int ele 10;ele data;//ele (int) (ele data):会自动把double类型的data转化为int类型System.out.println(ele);//23}
} 三.关系运算符
1.什么是关系运算符 —— 关系运算符常用于表示某个条件的真假所以关系运算符的结果都是boolean类型关系运算符常用在if结构的条件判断和循环的条件判断中 2.关系运算符概览
关系运算符解释示例判断相等10 7!不等于10 ! 7小于10 12大于12 13小于等于13 15大于等于15 16instanceof 检查对象是否为该类的 运行类型 china instanceof String 3.一个小case快速了解关系运算符
public class Test {public static void main(String[] args) {//关系运算符System.out.println(3 5);//falseSystem.out.println(3 ! 5);//trueSystem.out.println(3 5);//falseSystem.out.println(10 12);//trueSystem.out.println(12 12);//trueSystem.out.println(15 13);//falseString str love;System.out.println(str instanceof Object);//trueString是Object的子类}
} 4.关系运算符的细节讨论 1关系运算符的结果都是boolean类型只有true和false两种结果 2注意不要把判断相等写错成了赋值 public class Test {public static void main(String[] args) {//关系运算符的结果都是boolean类型只有true和false两种结果System.out.println(3 5);//trueSystem.out.println(3 5);//false//注意不要把判断相等写错成了赋值int num 10;System.out.println(num 10);//10这里的num 10是赋值任何输出System.out.println(num 10);//true这里的num 10是判断相等}
} 四.逻辑运算符
1.什么是逻辑运算符 —— 逻辑运算符用于连接多个条件或多个关系表达式最后得到一个是boolean类型的结果也就是说逻辑运算符只有两种结果true , false 2.逻辑运算符概览
逻辑运算符解释示例短路与全真为真一假则假 a true; b false; a b ||短路或一真则真全假则假 a true;b false; a || b 逻辑与全真为真一假则假 a true; b false; a b |逻辑或一真则真全假则假 a true;b false; a | b ^ 逻辑异或一真一假则为真 全真全假则为假 a true;b false; a ^ b !真变假假变真 a false; !a 3.一个小case快速了解逻辑运算符
public class Test {public static void main(String[] args) {//逻辑运算符boolean b1 true;boolean b2 false;//(短路与)全真为真一假则假System.out.println(b1 b2);//false//||(短路或)一真为真全假为假System.out.println(b1 || b2);//true//(逻辑与)全真为真一假则假System.out.println(b1 b2);//false//|(逻辑或)一真为真全假为假System.out.println(b1 | b2);//true//^(逻辑异或)一真一假则为真全真全假则为假System.out.println(b1 ^ b2);//true//(逻辑取反真变假假变真System.out.println(!b1);//falseSystem.out.println(!b2);//true}
} 4.逻辑运算符的细节讨论 1 与 的判断过程在判断过程中如果第一个条件为false则不会在判断后面的条件最终的结果为false 在判断过程中不管第一个条件是否为false依旧会判断第二个条件 public class Test {public static void main(String[] args) {int a 0;int b 10;//在判断过程中如果第一个条件为false则不会在判断后面的条件最终的结果为falseif (a 1 b 15) {System.out.println(hehe);}System.out.println(a);//0System.out.println(b);//10:b 15没有执行//在判断过程中不管第一个条件是否为false依旧会判断第二个条件if (a 1 b 15) {System.out.println(haha);}System.out.println(a);//0System.out.println(b);//11:b 15执行了}
}2|| 与 | 的判断过程 ||在判断过程中如果第一个条件为true则不会在判断后面的条件最终的结果为true |在判断过程中不管第一个条件是否为true依旧会判断第二个条件 public class Test {public static void main(String[] args) {int num1 10;int num2 12;//||在判断过程中如果第一个条件为true则不会在判断后面的条件最终的结果为trueif (num1 1 || num2 15) {System.out.println(hehe);//hehe}//|在判断过程中不管第一个条件是否为true依旧会判断第二个条件System.out.println(num1);//10System.out.println(num2);//12:num2 15没有执行if (num1 1 | num2 15) {System.out.println(haha);//haha }System.out.println(num1);//10System.out.println(num2);//13:num2 15执行了}
} 五.三元运算符
1.什么是三元运算符 ——三元运算符其实就是有三个操作数的运算符 三元运算符格式条件表达式 表达式1 表达式2 解释如果条件表达式为真则执行表达式1否则执行表达式2 2.一个小case快速了解三元运算符
public class Test {public static void main(String[] args) {int num1 10;int num2 12;//三元运算符int res1 10 5 ? 10 : 5;int res2 num1 num2 ? num1 : num2;System.out.println(res1);//10System.out.println(res2);//12}
} 3.三元运算符的细节讨论 1表达式1和表达式2要为可以赋给接收变量的类型或可以自动类型转化 public class Test {public static void main(String[] args) {//表达式1和表达式2要为可以赋给接收变量的类型或可以自动类型转化int num1 10.1 5.1 ? (int) 10.1 : (int) 5.1;//需要把double类型转化成int类型int data1 100;int data2 97;char ch data1 data2 ? (char) data1 : (char) data2;//把int类型转化成char类型System.out.println(num1);//10System.out.println(ch);//d}
} 2三元运算符可以转成if - else语句 public class Test {public static void main(String[] args) {//三元运算符可以转成if - else语句int num1 100;int num2 110;int res1 num1 num2 ? num1 : num2;System.out.println(res1);/110int res2 10;//转化成if-else语句if (num1 num2)res2 num1;elseres2 num2;System.out.println(res2);//110}
} 六.位运算
6.1 进制
1.什么是进制 —— 进制就是几进制数我们日常生活使用的十进制但是还有其他几种常用的进制 二进制满2进1只有0和1以0b或0B开头 八进制满8进1以数字0开头 十六进制满16进1有0-9A(a)-F(f),A是10F是15以0x或0X开头 2.一个小case快速了解进制
public class Test {public static void main(String[] args) {//进制//二进制以0b/0B开头int num1 0b01110;//八进制以0开头int num2 0123;//十六进制以0x/0X开头int num3 0xabd2;//输出:输出的时候是转化为十进制输出的System.out.println(num1);//14System.out.println(num2);//83System.out.println(num3);//43986}
} 3.某进制转换成十进制 1二进制转十进制 转换规则从低位开始将每个位上的数提取出来乘上2 ^ (第几位 - 1的次方最后求和 2八进制转十进制 转换规则从低位开始将每个位上的数提取出来乘上8 ^ (第几位 - 1的次方最后求和 3十六进制转十进制 转换规则从低位开始将每个位上的数提取出来乘上16 ^ (第几位 - 1的次方最后求和 public class Test {public static void main(String[] args) {//二进制转十进制int num1 0b111011;//1*2^0 1*2^1 0*2^2 1*2^3 1*2^4 1*2^5 59System.out.println(num1);//59//八进制转十进制int num2 01234;//4*8^0 3*8^1 2*8^2 1*8^3 668System.out.println(num2);//668//十六进制转十进制int num3 0xab78;//8*16^0 7*16^1 b(11)*16^2 a(10)*16^3 8 102 2816 40960System.out.println(num3);//43896}
} 4.十进制转换成某进制 1十进制转二进制 转换规则把十进制数不断除2知道商为0为止然后将每步的余数倒过来就是相对应的二进制 2十进制转八进制 转换规则把十进制数不断除8知道商为0为止然后将每步的余数倒过来就是相对应的二进制 3十进制转十六进制 转换规则把十进制数不断除16知道商为0为止然后将每步的余数倒过来就是相对应的二进制 5.二进制转八进制、十六进制 1二进制转八进制 转换规则从低位开始每三个二进制位就是一个八进制位 2二进制转十六进制 转换规则从低位开始每四个二进制位就是一个十六进制位 public class Test {public static void main(String[] args) {//二进制转八进制:从低位开始每三个二进制位是一个八进制位int data1 0b0011110111011;//对应的八进制03673int data2 03673;System.out.println(data1 data2);//true//二进制转十六进制从低位开始每四个二进制位是一个十六进制位int num1 0b1011101010101;//对应的十六进制0x1755int num2 0x1755;System.out.println(num1 num2);//true}
} 6.八进制、十六进制转二进制 1八进制转二进制 转换规则从低位开始每八进制的一位是二进制的三位 2十六进制转二进制 转换规则从低位开始每十六进制的一位是二进制的四位 public class Test {public static void main(String[] args) {//八进制转二进制int num1 01234;//对应的二进制1010011100int num2 0b1010011100;System.out.println(num1 num2);//true//十六进制转二进制int data1 0xab34;//对应的二进制1010101100110100int data2 0b1010101100110100;System.out.println(data1 data2);//true}
} 6.2 位运算
1.什么是位运算 —— 使用二进制位进行运算的操作叫做位运算 2.原码、反码、补码详解 1二进制的最高符号位0表示正1表示负 2正整数的原码、反码、补码均相同 3负数的反码 原码符号位不变其他位取反 4负数的补码 负数的反码 1 负数的反码 负数的补码 - 1 5Java中的数都是有符号的即Java中没有无符号数 7计算机再进行运算均是以补码来进行的 8计算机计算的结果是原码 3.位运算符
位运算符解释示例(按位与)全1为1有0为03 2| (按位或)有1为1全0为03 | 2^ (按位异或)不同为1相同为03 ^ 21~ (按位取反)1变00变1~12 (算术右移)向右移动低位溢出高位以符号位补全2 1 (算术左移)符号位不变低位补02 3 (逻辑右移/无符号右移) 低位溢出高位补02 3 4.一个小case快速了解位运算符
public class Test {public static void main(String[] args) {int num1 9 5;// 9:1001// 5:0101//结果:0001 -- 1System.out.println(num1);//1int num2 9 | 5;// 9:1001// 5:0101//结果:1101 -- 13System.out.println(num2);//13int num3 9 ^ 5;// 9:1001// 5:0101//结果:1100 -- 12System.out.println(num3);//12int num4 2 1;// 2:0010//结果:0001 -- 1System.out.println(num4);//1int num5 2 5;// 2:0000010//结果: 01000000-- 64System.out.println(num5);//64int num6 16 3;// 16:10000//结果: 00010-- 2System.out.println(num6);//2}
} 5.思考下面的代码输出什么
public class Test {public static void main(String[] args) {int num1 1 2;//00000000 00000000 00000000 00000001//右移两位//00000000 00000000 00000000 000000000System.out.println(num1);//0int num2 -1 2;//10000000 00000000 00000000 00000001 原码//11111111 11111111 11111111 11111110 反码//11111111 11111111 11111111 11111111 补码//右移两位//11111111 11111111 11111111 11111111 补码//11111111 11111111 11111111 11111110 反码//10000000 00000000 00000000 00000001 原码-1System.out.println(num2);//-1int num3 1 2;//00000000 00000000 00000000 00000001//左移两位//00000000 00000000 00000000 000001004System.out.println(num3);//4int num4 -1 2;//10000000 00000000 00000000 00000001 ---原码//11111111 11111111 11111111 11111110 ---反码//11111111 11111111 11111111 11111111 ---补码//左移两位//11111111 11111111 11111111 11111100 ---补码//11111111 11111111 11111111 11111011 ---反码//10000000 00000000 00000000 00000100 ---原码-4System.out.println(num4);//-4int num5 3 2;//00000000 00000000 00000000 00000011//逻辑右移2位//00000000 00000000 00000000 000000000System.out.println(num5);//0}
} 七.运算符优先级
1.什么是运算符优先级 —— 运算符有不同的优先级优先级就是表达式运算中的运算顺序 2.优先级运算符表 八.键盘输入语句
1.什么是键盘输入语句 在进行编写程序的时候我们需要从键盘输入一些需要的值这个时候我们就需要键盘输入语句来解决 2.一个小case快速了解键盘输入语句
public class Test {public static void main(String[] args) {int data 0;double num 0;String str ;//需要new一个对象用来使用键盘输入语句Scanner sc new Scanner(System.in);data sc.nextInt();//nextInt()则要输入整数num sc.nextDouble();//nextDouble则要输入浮点数str sc.next();//next()则要输入字符串System.out.println(data);System.out.println(num);System.out.println(str);}
} 3.键盘使用语句的步骤 1导入键盘输入类所在的包java.util.* 2创建键盘输入类的对象 3调用功能要输入什么类型的值则调用什么类型的功能