1. 运算符
-
概念
- 对变量和常量进行操作的符号
-
分类
- 算数运算符:+ - * / ++ –
- 赋值运算符:= += -= *= /=
- 关系运算符:> < == !=
- 逻辑运算符:|| && ^
- 位运算符:>> <<
- 字符串连接符:+
- 三目运算符:?:
-
算数运算符
public class Demo01_Operator { public static void main(String[] args) { int num1 = 4; int num2 = 5; System.out.println(num1 + num2); System.out.println(num1 - num2); System.out.println(num1 * num2); System.out.println(num1 / num2); System.out.println(num1 % num2); } }
2. 算数运算符之++和–
-
代码实现
public class Demo02_Operator { public static void main(String[] args) { int num1 = 4; int num3 = num1++; System.out.println(num1);//5 System.out.println(num3);//7 int num2 = 5; int num4 = ++num2; System.out.println(num2);//6 System.out.println(num4);//6 int num5 = 4; int num6 = num5--; System.out.println(num5);//3 System.out.println(num6);//4 int num7 = 5; int num8 = --num7; System.out.println(num7);//4 System.out.println(num8);//4 } }
-
总结
- 不管++放在变量的前面还是后面,变量都会+1
- ++如果放在变量的后面,则整体等于变量的原值
- ++如果放在变量的前面,则整体等于变量的原值+1
- –同理
3. 算数运算符++和–的练习
-
代码
public class Demo03_Operator { public static void main(String[] args) { int a = 10; int b = 10; int c = 10; a = b--; b = c++; c = ++a; b = --c; a = c++; c = ++a; System.out.println(a);//11 System.out.println(b);//10 System.out.println(c);//11 } }
byte a = 1; a++; a = a + 1;//错误 a+1为int型,不能用一个byte型去存一个int型 要强转
4. 赋值运算符
-
分类
- 基本赋值运算 =
- 高级赋值运算 += -= /= *=
-
代码
public class Demo04_Operator { public static void main(String[] args) { int num1 = 1; int num2 = 1; num1 += num2; System.out.println(num1); byte num3 = 1; num3 += 1; //跟num3++一样 底层有强转 System.out.println(num3); } }
5. 关系运算符
-
分类
- == != > >= < <=
-
代码
public class Demo05_Operator { public static void main(String[] args) { int num1 = 1; int num2 = 1; double num3 = 1.0; short num4 = 5; float num5 = 5.0f; System.out.println(num1 > num2); //f System.out.println(num1 == num2);//t System.out.println(num1 < num2); //f System.out.println(num1 == num3);//t System.out.println(num4 == num5);//t } }
6. 位运算符
-
分类
- ^ >> <<
-
概述
-
^ 异或 相同取0,不同取1
-
<< 左移 向左移 右边补零
-
右移 向右移 左边补零
public class Demo06_Operator { public static void main(String[] args) { int a = 5; int b = 3; System.out.println(a >> b);//0 System.out.println(a << b);//40 System.out.println(a ^ b); //6 } }
-
7. 逻辑运算符
-
分类
- &
- 一个为假,全为假
- |
- 一个为真,全为真
- !
- 非真即假 非假及真
public class Demo07_Operator { public static void main(String[] args) { boolean a = true; boolean b = false; System.out.println(a & b); System.out.println(a | b); System.out.println(!b); System.out.println(!a); } }
- &
8. 运算符&和&& |和||的区别
-
& 位与 && 短路与,他们执行的结果是一样的
-
& 不管&左边是真还是假,右边一定执行
-
&& 如果左边为假,则右边不执行
public class Demo08_Operator { public static void main(String[] args) { int num1 = 1; int num2 = 1; boolean flag1 = num1 == 0 & num2++ == 1; System.out.println(flag1);//f System.out.println(num1);//1 System.out.println(num2);//2 num1 = 1; num2 = 1; boolean flag2 = num1 == 0 && num2++ == 1; System.out.println(flag2);//f System.out.println(num1);//1 System.out.println(num2);//1 } }
-
& 或与 && 短路或,他们执行的结果是一样的
-
& 不管&左边是真还是假,右边一定执行
-
&& 如果左边为真,则右边不执行
public class Demo08_Operator { public static void main(String[] args) { int num1 = 1; int num2 = 1; boolean flag3 = num1 == 1 | num2++ == 1; System.out.println(flag3);//t System.out.println(num1);//1 System.out.println(num2);//2 num1 = 1; num2 = 1; boolean flag4 = num1 == 1 || num2++ == 1; System.out.println(flag4);//t System.out.println(num1);//1 System.out.println(num2);//1 } }
9.三元运算符
-
语法
条件表达式 ? 表达式1 : 表达式2;
-
如果条件表达式为真,则输出表达式1的值
-
如果条件表达式为假,则输出表达式2的值
-
运算结果是一个值,可以用变量接收
/** 求最大值 */ public class Demo09_Operator { public static void main(String[] args) { int num1 = 5; int num2 = 1; int max = num1 > num2 ? num1 : num2; System.out.println("max:" + max); } }
-
10. 练习 两只跳跳虎
-
需求
- 公园里有两只跳跳虎,一只200斤,一只180斤,问他们体重是否相等
public class Demo10_Operator { public static void main(String[] args) { int tiger1 = 200; int tiger2 = 180; boolean isEquals = tiger1 == tiger2; System.out.println("是否相等:" + isEquals); String msg = tiger1 == tiger2 ? "相等" : "不相等"; System.out.println(msg); } }
- 公园里有两只跳跳虎,一只200斤,一只180斤,问他们体重是否相等
11. 练习 三个和尚
-
需求
-
有三个和尚,分别高为150 165 210, 输出最高的那一个
public class Demo10_Operator { public static void main(String[] args) { int monk1 = 150; int monk2 = 165; int monk3 = 210; int max = monk1 > monk2 ? monk1 : monk2; max = max > monk3 ? max : monk3; System.out.println("最高的和尚的身高是" + max);//210 int max1 = (monk1 > monk2 ? monk1 : monk2) > monk3 ? (monk1 > monk2 ? monk1 : monk2) : monk3; System.out.println("最高的和尚的身高是" + max1);//210 } }
-
12. Java表达式
- 概述
- 由变量,常量,运算符组的式子
- 赋值表达式
- 算数表达式
- 逻辑表达式
- 比较表达式
- 三元表达式
13. 键盘输入
-
概述
- 在程序的运行过程中添加键盘录入,提高交互性,增强用户体验
-
步骤
-
导包
-
创建对象
-
提示输入
-
开始输入
-
打印输出
import java.util.Scanner; public class Demo13_Expression { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入a的值"); int a = input.nextInt(); System.out.println("a:" + a); //input.close(); } }
-
14. 两只跳跳虎(加强版)
//键盘输入两个跳跳虎的体重,比较是否相等
import java.util.Scanner;
public class Demo15_Expression {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.println("请输入两只跳跳虎的体重");
int tiger1 = input.nextInt();
int tiger2 = input.nextInt();
String msg = tiger1 == tiger2 ? "两只跳跳虎的体重相等" : "两只跳跳虎的体重不相等";
System.out.println(msg);
}
}
15.三个和尚(加强版)
//键盘输入3个和尚的身高, 打印最矮的那个和尚的身高
import java.util.Scanner;
public class Demo16_Expression {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.println("请输入第一个和尚的身高");
int monk1 = input.nextInt();
System.out.println("请输入第二个和尚的身高");
int monk2 = input.nextInt();
System.out.println("请输入第三个和尚的身高");
int monk3 = input.nextInt();
int min = monk1 <monk2 ? monk1 : monk2 <monk3 ? monk1 <monk2 ? monk1 : monk2 : monk3;
System.out.println("最矮的和尚的身高为");
System.out.println(min);
}
}
16. 流程控制语句
- 概述
- 可以控制程序的执行流程
- 分类
- 顺序结构
- 选择结构
- 循环结构
17. 选择结构之if单分支
-
选择结构语句
- if
- switch
-
if语句
- 单分支
- 双分支
- 多分支
-
if单分支
public class Demo17_If { public static void main(String[] args) { boolean flag = true; if (flag) { System.out.println("if语句体"); } System.out.println("我执行了"); } }
18. 单分支if练习
-
需求s
-
输入年龄,如果年龄大于30岁 打印老邱 否则 打印邱
import java.util.Scanner public class Demo18_If { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入年龄"); int age = input.nextInt(); String name = "邱"; if(age > 30) { name = "老" + name; } System.out.println("你好" + name); } }
-
19. 双分支if语句
-
语法
if(flag){ 表达式1; }else{ 表达式2; }
-
实现
public class Demo19_If { public static void main(String[] args) { boolean flag = true; if (flag) { System.out.println("我爱java"); }else { System.out.println("java使我快乐"); } System.out.println("java天下第一"); } }
20. if双分支练习
//比较大小
public class Demo20_If {
public static void main(String[] args) {
int a = 15;
int b = 20;
int max = 0;
if (a > b) {
max = a;
}else {
max = b;
}
System.out.println(max);
}
}
//输入年龄,如果大于30,输出老邱,否则,输出小邱
public class Demo21_If {
public static void main(String[] args) {
String name = "邱";
Scanner input = new Scanner(System.in);
int age = input.nextInt();
if (age > 30) {
System.out.println("老" + name);;
}else {
System.out.println("小" + name);;
}
}
}
//输入一个数 判断是偶数还是奇数
public class Demo22_If {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
if (num % 2 == 0) {
System.out.println("该数是偶数" );;
}else {
System.out.println("该数是奇数");;
}
}
}