强制类型转换
public class Demo01_强制类型转换注意事项 {
public static void main(String[] args) {
//浮点转成整数,直接去掉小数点,可能造成数据丢失精度。
double d1 = 3.14;
double d2 = 3.88;
//强制类型转换
int i1 = (int)d1;
System.out.println(i1);
int i2 = (int)d2;
System.out.println(i2);
}
}
浮点转成整数,直接去掉小数点,没有四舍五入
可能造成数据损失精度。
浮点数运算问题
public class Demo02_浮点数运算问题 {
public static void main(String[] args) {
double x = 1.0;
double y = 0.9;
double result = x-y;
//java 中的基本数据类型中的小数,不是精确的小数
System.out.println(result);//0.09999999999999998
//整数相除必得整数,不会有小数
}
}
java 中的基本数据类型中的小数,不是精确的小数
整数相除必得整数,不会有小数
算术运算符
public class Demo03_算术运算符 {
public static void main(String[] args) {
// + - * / %
//+表示:正数
//+字符串拼接
//+加法运算 针对的是数值之间进行运算
int x = 10;
int y = 20;
int z = x+y;
System.out.println(z);//30
//-表示:负数
//-表示减法运算,也是针对于数值之间的运算
z = x - y;
System.out.println(z);//-10
//*表示:乘法
z = x * y;
System.out.println(z);//200
// /表示:除法
//除法运算 也符合整数相除只得整数
z = x / y;
System.out.println(z);//0
//%表示:求取余
//余数的取值范围 与除数有关系[0~除数-1]
//余数的符号(-,+) 与被除数有关系
z = x % y;
System.out.println(z);//10
//++或--
//++自增1
//++可以放到变量的前面,或者变量的后面
//++与变量 单独一行,在前或在后效果一样
int i = 10;
i++;
System.out.println(i);//11
++i;
System.out.println(i);//12
//当++作为表达式的一部分,++在前会先自增1,后参与表达运算
//当++作为表达式的一部分,++在后,会先参与表达式运算,后自增1
int num = 10;
//num++ ++在后,会先用原来的值10 参与加法运算
int result = num++ + 10;
System.out.println(result);//20
//参与运算后,num值会自增1
System.out.println(num);//11
//++在前,会先自增1,原来的值是11 现在的会变成12
//变成12之后与 10 相加 得出结果
result = ++num + 10;
System.out.println(result);//22
System.out.println(num);//12
}
}
++自增1
++可以放到变量的前面,或者变量的后面
++与变量 单独一行,在前或在后效果一样
当++作为表达式的一部分,++在前会先自增1,后参与表达运算
当++作为表达式的一部分,++在后,会先参与表达式运算,后自增1
参与运算后,值会自增1
赋值运算符
public class Demo04_赋值运算符 {
public static void main(String[] args) {
//赋值运算符 我把等号右边的值赋值给 = 左边的变量名
//+=,-=,*=,/=,%=
//+=
int num = 10;
//num = num + 20;
num += 20;
System.out.println(num);//30
//自动强制类型转换
int a = 1;
short b = 2;
//b = b + a;报错因为类型转换小转大
b+=a;//运算符进行了自动强制类型转换
System.out.println(b);
//小于int类型的整数运算的时候,会自动提升为int类型
}
}
赋值运算符 我把等号右边的值赋值给 = 左边的变量名
+=,-=,*=,/=,%= 都是赋值运算符
小于int类型的整数运算的时候,会自动提升为int类型
比较运算符
public class Demo05_比较运算符 {
public static void main(String[] args) {
//比较运算符 表达式结束之后 会产生一个boolean类型的值
// == 比较是否相等
int num1 = 100;
int num2 = 99;
boolean b = num1==num2;
System.out.println(b);
// != 不等于
b = num1!=num2;
System.out.println(b);
// > 大于
b = num1 > num2;
System.out.println(b);
// < 小于
b = num1 < num2;
System.out.println(b);
// >= 大于或等于
b = num1 >= num2;
System.out.println(b);
// <= 小于或等于
b = num1 <= num2;
System.out.println(b);
}
}
比较运算符 表达式结束之后 会产生一个boolean类型的值
逻辑运算符
public class Demo06_逻辑运算符 {
public static void main(String[] args) {
//逻辑运算符的结果 为boolean类型
//逻辑运算符的两边 必须是布尔类型的表达式
// & 逻辑与 要求与运算符两边的结果要同时为真,
//true & true == true
//true & false == false
//false & true == false
//false & false == false
int num1 = 10;
int num2 = 20;
int num3 = 30;
int num4 = 40;
boolean bool1 = num1 <= num2;//true
boolean bool2 = num3 >= num4;//true
boolean boo1 = bool1 & bool2;//true
System.out.println(boo1);//true
System.out.println("----------------------------------------");
//逻辑或 | 或者 只要有一个条件满足为真 表达式就会成立
//true | true == true
//true | false == true
//false | true == true
//false | false == false
boolean boo2 = bool1 | bool2;//true
System.out.println(boo2);//true
System.out.println("----------------------------------------");
// ! 非 取反
//书写代码正确的逻辑代码,如果为真,代码才会执行
//有些情况 当其为假的时候,需要将代码执行
System.out.println(!boo2);
System.out.println("----------------------------------------");
// ^ 了解 相同为假,不同为真
//true ^ true == false
//true ^ false == true
//false ^ true == true
//false ^ false == false
System.out.println(true ^ true);
System.out.println(true ^ false);
System.out.println(false ^ true);
System.out.println(false ^ false);
System.out.println("================================================================");
/*
短路逻辑与 &&
短路逻辑或 ||
好处:提升了代码的运行效率
*/
int i1 = 99;
int i2 = 100;
int i3 = 101;
int i4 = 102;
//与运算特点特点,如果有一个为假,整体为假
//与前面的条件为false,后边的表达式结果不管是true还是false对整个表达式最终的结果都将不会产生影响,所以可以采用短路逻辑与 &&
boolean boo3 = i1 > i2 && i1++ >=100;
System.out.println(boo3);//false
System.out.println(i1);//99
//短路逻辑或 ||
/*
当运算,只要有一个为真,结果为真,
当运算符第一个条件为 真 , 后面的为真或假 都没意义了
通过短路逻辑或 ||
*/
boolean bool4 = i3 <= i4 || ++i3 ==i4;
System.out.println(bool4);
System.out.println(i3);
}
}
三元运算符
public class Demo07_三元运算符 {
public static void main(String[] args) {
/*
格式: 数据类型 变量名 = 布尔类型表达式 ? 值1 : 值2;
数据类型: 一定要和值1 和 值2的数据类型保持一致
变量名: 见名知意,符合小驼峰规则
=: 赋值运算符 把值1 或 值2 的值赋值给变量名
布尔类型的表达式: 只能是布尔类型的表达式,要么是真,要么是假
? : 询问作用 布尔表达式的结果
值1: 如果布尔表达式为 真 就返回值1
值2: 如果布尔表达式为 假 就返回值2
*/
}
}
Scanner(扫描)键盘录入
//导包
import java.util.Scanner;
public class Demo08_Scanner键盘录入 {
public static void main(String[] args) {
/*
使用键盘录入3步曲
1, 导入: import java.util.Scanner;
2, 创建对象: Scanner sc = new Scanner(System.in);
3, 调用方法:
nextInt() 只能从键盘录入int以内的整数
nextline() 能从键盘录入任意的内容
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数");
// nextInt() 只能从键盘录入int范围以内的整数
int num = sc.nextInt();
System.out.println("您输入的整数是:" + num);
System.out.println("请输入任意内容:");
String str = sc.nextLine();
System.out.println("您输入的是:" + str);
}
}