运算符
在代码中,如果有小数参与计算,结果有可能不精确的。
整数参与运算,得到的还是整数
+
数字进行运算时,数据类型不一样不能运算,需要转成一样的,才能运算。
隐式转换
强制转换
但是可能会出错
Byte 范围内没有300,转换就出错
输出b是44;出错了
字符串相加
字符相加
自增自减运算符
1:a=11;b=10
2:a=11;b=11
赋值运算符
底层隐藏了一个强制类型转换
关系运算符
逻辑运算符
短路逻辑运算符(提高效率)
当左边的表达式能确定最终的结果,那么右边就不会参与运行了
&&:先判断左边,左边为false就直接是false,不看右边
||:先判断左边,左边为true就直接是true,不看右边
package test;
import java.util.Scanner;
public class test2 {
public static void main(String[] args) {
Scanner sc1 = new Scanner(System.in);
System.out.println("first:");
int first = sc1.nextInt();
Scanner sc2 = new Scanner(System.in);
System.out.println("second:");
int second = sc2.nextInt();
boolean result = first == 6 || second == 6 || (first + second) % 6 == 0;
System.out.println(result);
}
}
三元运算符
优先级:()优先所有
原码反码补码
负数的加减法:先转换成反码,反码正常加减,再转换成原码(没有跨0的情况:如-5+3)
如果出现跨0:如-5+7,则将原码转成补码,补码进行加减,再转成原码
计算机数字计算和存储通过补码计算,所以一个字节取值范围是-128~127。
隐式转换 前面补0
强制转换:去掉多余的字节
**注意:第一位是符号位
其他运算符
和上面的与 或不一样
左移一次 就乘2
右移一次,就除以2
注意:符号位始终与原来的符号位相同
顺序结构
分支结构 if
if的注意点:
1.大括号的开头可以另起一行书写,但是建议写在第一行的末尾
2.在语句体中,如果只有一句代码,大括号可以省略不写。个人建议,大括号还是不要省略3.如果对一个布尔类型的变量进行判断,不要用==号,直接把变量写在小括号即可
If
Else
练习
package ifDemo;
import java.util.Scanner;
public class ifDemo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("ur number is:");
int num = sc.nextInt();
if (num >= 0 && num <= 100) {
if (num % 2 == 0) {
System.out.println("right side");
} else {
System.out.println("left side");
}
} else {
System.out.println("fake ticket!");
}
}
}
Else if
练习
package ifDemo;
import java.util.Scanner;
public class ifDemo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("ur mark:");
int mark = sc.nextInt();
if (mark >= 0 && mark <= 100) {
if (mark >= 95 && mark <= 100) {
System.out.println("bike!");
} else if (mark >= 90 && mark <= 94) {
System.out.println("holiday");
} else if (mark >= 80 && mark <= 89) {
System.out.println("transformer");
} else {
System.out.println("bit u!");
}
} else {
System.out.println("try again");
}
}
}