目录
运算符
算数运算符:加、减、乘、除、取模
package com.itheima.demo1;
public class AritmeticoperatorDemo1 {
public static void main(String[] args) {
System.out.println(3+2);//5
System.out.println(3-1);//2
System.out.println(3*5);//15
//当计算中有小数参加时,结果有可能不精确
System.out.println(1.2+1.2);
System.out.println(1.01+1.1);
//除法
System.out.println(10/2);
System.out.println(10/3);
System.out.println(10.0/3);
//当计算只有整数的时候,结果一定是整数;如果有小数参加,结果有可能不精确;
//取模(取余)得到余数
System.out.println(10%3);
System.out.println(10%2);
}
}
练习:数值拆分
需求:键盘录入一个三位数,将其拆分成个、十、百位后,打印在控制台
package com.itheima.test; import java.util.Scanner; public class test01 { public static void main(String[] args) { //键盘录入 Scanner sc = new Scanner(System.in); System.out.println("请输入一个三位数字:"); int i = sc.nextInt(); //拆分 int a,b,c;//a代表十位,b代表百位,c代表个位; a = i % 10; System.out.println("个位:"+a); b = i / 10 %10; System.out.println("十位:"+b); c = i / 100 %10; System.out.println("百位:"+c); } }
高级运算
隐式转换(自动类型提升)-取值范围小的->取值范围大的
数据类型不一样的时候,不能进行计算,要转换成一样的数据类型
特点:不需要自己额外写代码,程序会自动实现。(这里我们要回顾day02中的取值范围大小:byte<short<int<long<float<double);
两种提升规则:①取值范围小的和取值范围大的进行运算,小的会先提升为大的,再进行运算。②byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再运算。
强制转换-取值范围大的->取值范围小的
格式:目标数据类型 变量名 = (目标数据类型)被强制转化的数据;
byte result = (byte) (b1 + b2);
字符串的“+”操作
“123”+123 ->“123123”
三种情况:
①数字相加
②字符串相加
③字符相加
当字符+字符或者字符+数字的时候,会把字符通过ASCII码表查询到对应的数字再进行计算
自增自减运算符
++ (可以放在前面也可以放在后面)
-- (可以放在前面也可以放在后面)
赋值运算符
= ;+=;-+;*=; /+; %=
关系运算符/比较运算符
== ; != ; > ; >= ; < ; <=
练习:约会
键盘录入两个整数,标识你和你对象衣服的时髦度。(0~10之间),如果你的大于对象的,输出true,反之输出false。
package com.itheima.test; import java.util.Scanner; public class test01 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入你的时髦程度:"); int a = sc.nextInt(); System.out.println("请输入你对象的时髦程度:"); int b = sc.nextInt(); boolean result = a>b; System.out.println(result); } }
逻辑运算符
&(逻辑与); |(逻辑或);^(逻辑异或,相同为false,不同为true);!(逻辑非,取反)
短路逻辑符
&&(短路与) ; ||(短路或)
当左边的表达式能够确定最终结果,那么右边的表达式就不会参与运算了。
练习:数字6
键盘录入两个数字,如果其中一个为6,或者和为6,输出true;否则false。
package com.itheima.test; import java.util.Scanner; public class test01 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一个整数:"); int a = sc.nextInt(); System.out.println("请输入第二个整数:"); int b = sc.nextInt(); boolean result = a==6 || b==6 || (a+b)%6==0; System.out.println(result); } }
三元运算符
需求:定义一个变量记录两个整数的较大值
作用:可以进行判断,根据判断的结果得到不同的内容
格式:关系表达式?表达式1:表达式2;
例:求两个数的较大值
int max = a>b?a:b; (如果a>b,打印a,反之打印b)
练习:两只老虎
需求:两只老虎体重分别通过键盘录入,判断两只老虎体重是否相同.
package com.itheima.test; import java.util.Scanner; public class test01 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一只老虎的重量:"); double tiger1 = sc.nextDouble(); System.out.println("请输入第二只老虎的重量:"); double tiger2 = sc.nextDouble(); System.out.println(tiger1 == tiger2 ? true:false); } }