运算符
1.算数运算符
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| + | 正号 | +3 | 3 |
| - | 负号 | b=4;-b | -4 |
| + | 加 | 5+5 | 10 |
| - | 减 | 6-4 | 2 |
| * | 乘 | 3*4 | 12 |
| / | 除 | 5/5 | 1 |
| % | 取模(取余) | 7%5 | 2 |
| ++ | 自增(前),先运算后取值 | a=2;b=++a; | a=3,b=3 |
| ++ | 自增(后),先取值后运算 | a=2;b=a++; | a=3,b=2 |
| -- | 自减(前),先运算后取值 | a=2;b= --a; | a=1,b=1 |
| -- | 自减(后),先取值后运算 | a=2;b=a--; | a=1,b=2 |
| + | 字符串连接 | "He"+"llo" | "Hello" |
2.赋值运算符
-
符号:=
- 当“=”两侧数据类型不一致时,可以使用自动类型转换或者使用强制类型转换原则进行处理。
- 支持连续赋值
-
扩展赋值运算符:+=,-=,*=,/=,%=
3.比较运算符(关系运算符)
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| == | 相等于 | 4==3 | false |
| != | 不等于 | 4!=3 | true |
| < | 小于 | 4<3 | false |
| > | 大于 | 4>3 | true |
| <= | 小于等于 | 4<=3 | false |
| >= | 大于等于 | 4>=3 | true |
| instanceof | 检查是否是类的对象 | "Hello" instanceof String | true |
比较运算符的结果都是boolean型,也就是要么是true要么是false。
比较运算符“==”不能误写为“=”
4.逻辑运算符
&——逻辑与
|——逻辑或
!——逻辑非
&&——短路与
||——短路或
^——逻辑异或
5.位运算符
| 位运算符 | ||
|---|---|---|
| 运算符 | 运算 | 范例 |
| << | 左移 | 3<<2=12-->3*2*2=12 |
| >> | 右移 | 3>>>1=1-->3/2=1 |
| >>> | 无符号右移 | 3>>>1=1-->3/2=1 |
| & | 与运算 | 6&3=2 |
| | | 或运算 | 6|3=7 |
| ^ | 异或运算 | 6^3=5 |
| ~ | 取反运算 | ~6=-7 |
位运算符是直接对整数的二进制进行的运算。
结论:
位运算符操作的都是整型的数据。
<<:在一定范围内,每向左移一位相当于*2
>>:在一定范围内,每向右移一位相当于/2
6.三元运算符
结构:(条件表达式)?表达式1:表达式2
说明:
1.条件表达式的结果为boolean类型
2.根据条件表达式真或假,决定执行表达式1还是表达式2
如果表达式为true,则执行表达式1,
如果表达式为false,则执行表达式2.
表达式1和表达式2要求是一致的。
三元运算符可以嵌套使用。
3.凡是可以使用三元运算符的地方都可以改写成if/else
程序流程控制
- 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
1.分支结构
- if-else结构
例题一:
小明的考试成绩为100分时,评级是S; 成绩为(80,99]时,评级是A; 成绩为[60,80]是,评级是B; 成绩为其他时评级为C。 请从键盘输入小明的期末成绩并加以判断。
import java.util.Scanner;
class IfTest{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入小明的期末成绩:(0-100)");
int score=sc.nextInt();
if (score==100){
System.out.println("评级为s");
}else if(score>80){
System.out.println("评级为A");
}else if(score<=60){
System.out,println("评级为B");
}else{
System.out.println("评级为C");
}
}
}
说明:
1.else结构是可选的。
2.如果多个条件表达式之间是“互斥”关系(或没有交集的关系)时,哪个判断和执行语句声明在上面还是在下面无所谓。
3.如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。
4.如果多个条件语句表达式之间有包含的关系,通常情况下需要将范围小的声明在范围大的上面。否则范围小的就没有机会执行。
例题二:
编写程序:由键盘输入三个整数分别存入变量num2,num2,num3,对它们进行排序(使用if-else if-else)并且从小到大输出。
import java.util.Scanner;
class IfTest2{
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
System.out.print("请输入第一个整数:");
int num1 = sc.nextInt();
System.out.print("请输入第二个整数:");
int num2 = sc.nextInt();
System.out.print("请输入第三个整数:");
int num3 = sc.nextInt();
if(num1 >= num2){
if(num3 >= num1){
System.out.println(num2 + "," + num1 + "," + num3);
}else if(num3 <= num2){
System.out.println(num3 + "," + num2 + "," + num1);
}else{
System.out.println(num2 + "," + num3 + "," + num1);
}
}else{
if(num3 >= num2){
System.out.println(num1 + "," + num2 + "," + num3);
}else if(num3 <= num1){
System.out.println(num3 + "," + num1 + "," + num2);
}else{
System.out.println(num1 + "," + num3 + "," + num2);
}
}
}
}