一,运算符
- 概述:java中用来对数据进行操作使用的到一些符号,每个符号有自己独有的功能。
- 运算符的优先级:小括号 > 算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
-
算术运算符:
- 概述:java中对常量或变量进行数学运算的一些符号。就是对应我们数学中的数学运算
- 数学运算:加减乘除取余数
- 先*,/,%后+,-
+:
1、加法
2、正数【写在数的前面一般省略】
3、字符串拼接【操作的两个元素中有一个是字符串】
‐:
1、减法
2、负数【写在数的前面表示负数】
*:表示乘法
/:表示除法
%:表示取余数【取模】注意:
1、* / % 运算的时候有一方是浮点类型【小数】结果就是小数
2、整数类型中byte short 以及字符类型char代表的数字在运算的时候默认变为
int类型来计算的,结果也是int类型
3、除法如果是两个整数相除结果只取整数部分
代码示例
public class Demo02 {
public static void main(String[] args) { int a = 10;
int b = 20; System.out.println(a+b);//30
int c = +50 ;
System.out.println(c);//50
String s = "武汉很不错";
System.out.println(a+s);//10武汉很不错
//减法
System.out.println(a‐b);//‐10
System.out.println(‐40);//‐40
//乘除和取余
System.out.println(a*b);//200
System.out.println(a/b);//0
System.out.println(a%3);//1
//小数的乘除取余
System.out.println(b*2.1);//42.0
System.out.println(a/20.0);//0.5
System.out.println(a%3.3);//0.1 0.10000000000000053
//byte short 的数运算后的结果默认是int
byte bb = 12;
short ss = 13;
byte newb = (byte)(bb+ss) ;//验证byte 、 short类型的数运算后结果是int
}
}
- 自增自减运算符:
- 概述:java中是用来对变量进行增加一或减去一操作的运算符。
- 所以自增自减只能使用于变量 符号:
- 自增:++ 自 减 :-- 使用:
- 写在变量名称的前面或后面分情况:变量的自增和自减只是单独使用,符号写在变量前后对结果没有任何影响。
- 变量的自增自减和其他的操作结合的使用:
- 符号写在变量名的前面:自增自减的优先级大于其他操作优先级【先自增自减再去做其他操作】
- 符号写在变量名的后面:自增自减的优先级小于其他操作优先级【先做其他操作再做自增自减】
代码示例
public class Demo03 { public static void main(String[] args) {
int a = 10; int b = 20; //单独使用 /*++a; ‐‐b;*/ /*a++; b‐‐; System.out.println(a);//11 System.out.println(b);//19 */ //和输出语句结合使用 //System.out.println(++a);//11 System.out.println(a++);//10 System.out.println(a);//11 } }
-
比较运算符
- 概述:用来比较两个元素的大小关系,结果是boolean类型。符号和数学比较运算符号是一样 小于;等于 ;大于等于;小于等于;不等于
- 注意:在数学中支持 1<3<5 这样的写法,但是java中不支持。到逻辑运算符的时候给大家讲
代码示例
public class Demo04 {
public static void main(String[] args) {
//比较运算符System.out.println(3>5);//false
System.out.println(3<5);//true
System.out.println(3>=5);//false
System.out.println(3<=5);//true 或 满足其一则满足
System.out.println(3==5);//false
System.out.println(3!=5);//true
}
}
- 赋值运算符
- 概述:做把一个常量值存放到对应的数据类型变量空间中普通赋值:把一个常量值存放到对应的数据类型变量
- 符号:= 把符号右边的值放到左边的变量中
- 扩展赋值:先使变量里面的值和赋值符号右边的值进行运算,把运算后的结果赋值给变量 符号:
- +=:赋值符号左边的变量和右边的值进行相加,把结果赋值给左边的变量
- -=:赋值符号左边的变量和右边的值进行相减,把结果赋值给左边的变量
- *=:赋值符号左边的变量和右边的值进行相乘,把结果赋值给左边的变量
- /=:赋值符号左边的变量和右边的值进行相除,把结果赋值给左边的变量
- %=:赋值符号左边的变量和右边的值进行取余,把结果赋值给左边的变量
代码示例
public class Demo05 { public static void main(String[] args) { //普通赋值int num ; num = 100000; System.out.println(num);
int salary = 200000; //扩展赋值 salary+=5000;
//先使用变量值200000+5000=205000 System.out.println(salary);//205000
salary*=2;//salary*2=410000 410000赋值给salary
System.out.println(salary);//410000 salary/=4;
System.out.println(salary);//102500
salary‐=10000; System.out.println(salary);//92500 } }
-
逻辑运算符
- 概述:主要是来表示两个表达式结果的逻辑关系。
- 与【且】:表示两个表达式的结果必须都成立结果才成立,有一个不成立结果就不成 立【有假则假,全真为真】
- 普通与:& 执行的时候要对&左右两边的表达式都要执行
- 短路与:&& 执行的时候符号左边的表达式不成立,右边的表达式就不执行了【提效了】
- 或:表示两个表达式的结果有一个成立最终的结果就成立【有真则真,全假为假】 普通或:| 执行的时候要对|左右两边的表达式都要执行
- 短路或:|| 执行的时候符号左边的表达式成立,右边的表达式就不执行了【提效率】
- 非: ! 遇真则假,遇假则真
- 异或:^ 夫妻关系就是异或关系的生活中的典型俩个表达式的关系结果不同为真,相同则为假
代码示例
public class Demo06 {
public static void main(String[] args) {
//与
System.out.println(true & true);//true
System.out.println(true & false);//false
System.out.println(false & true);//false
System.out.println(false & false);//false
System.out.println("===========================");
//或
System.out.println(true | true);//true
System.out.println(true | false);//true
System.out.println(false | true);//true
System.out.println(false | false);//false
System.out.println("==========================");
//验证普通的与和短路与的执行顺序
int a = 3;
//System.out.println(false & a++>0);
//System.out.println(a);//4
System.out.println(false && a++>0);
System.out.println(a);//3
//验证普通或和短路或执行顺序课间练习。
// 非 :
System.out.println(!true);//false
//异或
System.out.println(true ^ true);//false
System.out.println(true ^ false);//true
System.out.println(false ^ true);//true
System.out.println(false ^ false);//false
}
}
-
三元运算符
-
元:表示可以操作的表达式【可以是常量,运算的式子等】
- 三元:三个可以操作的式子
- 格式:数据类型 变量名称 = 表达式1 ? 表达式2 :表达式3 ;
- 执行流程:
4.1、判断表达式1是否成立
4.2、根据表达式1的结果进行赋值给变量
4.3,表达式1成立,把表达式2的结果赋值给变量表达式1不成立,把表达式3的结果赋值给变量
练习
- 有三个int类型的变量,获取三个变量的最小值
- 分析:先随便比较其中的两个值,拿到最小值,然后使用最小值和第三个数比取这两者见得最小值。
代码示例
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 4;
int c = 38;
int min = a<b ? a : b;
min = min < c ? min : c ;
System.out.println(min);
//两个三元运算符的嵌套使用
int min1 = (a<b ? a : b)<c ? (a<b ? a : b) : c;
System.out.println(min1);
}
}
-
位移运算符
- 概述:一个数字通过在数制的位上进行左右移动达到数制翻倍和缩小的效果的一个运算。
- 计算速度要比乘法和除法快一些。
- 符号:
- <<: 左位移 数向左移动一位数字就扩大2倍
- >>: 右位移 数向右移动一位数字值就缩小2倍
- >>>: 无符号右位移 : 数向右移动一位数字值就缩小2倍但是他只能使用于正数
代码示例
public class Demo08 {
public static void main(String[] args) {
System.out.println(5<<1);//10
System.out.println(5<<2);//20
System.out.println(5<<3);//40
System.out.println(40>>1);//20
System.out.println(40>>2);//10
System.out.println(40>>>1);//20
System.out.println(‐40>>>1);//2147483628
不允许使用在负数上
}
}
二、键盘录入
- 概述:就是java中使用键盘录入一些数据到内存变量中,该变量为我们所用。比如:取钱的时候输密码使用的就是键盘录入就是jdk写好的一个类(Scanner),我们可以直接找到他来使用。
- 相关功能:
- nextInt():通过键盘录入int类型的整数到内存的变量中使用:
- 步骤:
- 导包【找到Scanner类】:格式:import java.util.Scanner
- 创建Scanner的对象:Scanner sc = new Scanner(System.in);
- 使用对象sc来调用功能:int num = sc.nextInt();
代码的示例
import java.util.Scanner; public class Demo09 {
public static void main(String[] args) {
//创建Scanner对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个int的整数:");
int num = sc.nextInt();
System.out.println(num);
}
}
练习一:
- 键盘录入两个整数,计算两个整数的和
代码示例
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
//键盘录入两个整数,计算两个整数的和
//创建Scanner对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int num1 = sc.nextInt();
System.out.println("请输入第二个整数:");
int num2 = sc.nextInt();
int sum = num1+num2;
System.out.println("您录入的两个数的和是:"+sum);
}
}
练习二
- 键盘录入三个整数,输出三个整数的最大值
代码示例
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数");
int num1 = sc.nextInt();
System.out.println("请输入第二个整数");
int num2 = sc.nextInt();
System.out.println("请输入第三个整数");
int num3 = sc.nextInt();
//求最大值
int max = num1>num2 ? num1:num2;
max = max > num3 ? max : num3;
System.out.println("您录入的三个数的最大值是:"+max);
}
}
练习三
- 键盘录入一个整数,判断该数字的奇偶例如,
- 输出:该数字是25,是一个奇数
代码示例
import java.util.Scanner;
public class Test03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = sc.nextInt();
String result = num % 2 ==0 ? "偶数" : "奇数";
System.out.println("您输入的数是"+result);
}
}
三、分支结构
- 概述:属于流程控制语句的一种。
- 属于一种把所有情形下的处理方式提前书写好,执行的时候根据实际的情形去执行该情形对应的处理方式。属于写 过个代码但是只执行其中一部分。具有固定的格式的。我们学习的时候只需要记住格式和执行流程,然后去套用就 好了。
- 分支结构的分类:
- 判断语句
- 选择语句
- 判断语句【if语句】
- 概述:把条件的不同结果的处理方式提前写好,执行的时候按照实际的条件结果去选择执行对应结果单额处理方 式,这样的语句叫做判断语句。
- 分类:单条件判断语句多条件判断语句
- 单条件判断语句
- 两种格式:if(条件表达式){语句体}
- 执行流程:
- 判断条件表达式是否成立
- 条件表达式成立,执行语句体。不成立,直接结束判断语句
- 执行流程:
- 判断条件表达式是否成立
- 条件表达式成立,执行语句体1。不成立,执行语句体2
- 格式:if (条件表达式){语句体1} else {语句体2}
代码示例
public class Demo10 {
public static void main(String[] args) {
//定义一个我自己的薪资
int salary = 30000;
//第一种格式:
/*if(salary>50000) {
System.out.println("租房子");
}*/
//第二种格式
if (salary>50000) {
System.out.println("租房子");
} else {
System.out.println("买房子");
}
}
}
- 多条件判断语句
- 格式:if(条件1){语句体1}else if(条件2){语句体2}...else if(条件n){语句体n} else{语句体n+1}
- 执行流程:
2.1、判断条件1是否成立
2.2、条件1成立;执行语句体1;然后结束判断。条件1不成立,判断条件2是否成立
2.3、条件2成立,执行语句体2,然后结束判读语句
2.4 条件2不成立继续判断下一个条件依次根据结果进行执行。
2.5、如果所有的条件都不成立,执行语句体n+1;
代码示例
import java.util.Scanner;
public class Demo11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的薪资");
int salary = sc.nextInt();
if (salary<3000&&salary>1500) {
System.out.println("我有对象");
}else if (salary>=3000&&salary<10000) {
System.out.println("你把他的电话给我吧");
}else if (salary>10000) {
System.out.println("把我的电话给他吧");
}else {
System.out.println("活该你单身");
}
}
}