您的位置 首页 java

Java入门超经典内部教程连载(四)

叩丁狼教育Java基础教程

1.1. 运算符

  • 对常量和变量进行操作的符号称为运算符

常用运算符:

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 三元运算符

1.1.1. 算术运算符(掌握)

叩丁狼教育Java基础教程

用来四则运算的符号,和小学学习的加减乘除无异。

1.1.1.1. 加减乘除余(了解)

对于 字符串 而言,+符号表示连接操作,任何类型的数据和字符串相连接,结果都是字符串。

1.1.1.2. 自增和自减(掌握)

自增:++,递增操作符,使变量值增加1,有前置和后置之分,只能操作变量。

自减:– ,递减操作符,使变量值减去1,有前置和后置之分,只能操作变量。

自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,现在单讲++。

代码 result ++和 ++result,结果都是result变量的值加1。

唯一的区别是:

  • 前置(++result): 表示对result加1之后的结果进行运算,
  • 后置(result++): 表示对result变量加1之前的值(原始值)进行运算。

如果仅仅执行简单的递增操作(只写result++或++result),那么选用任意一个都可以。

public class ArithmeticOperatorsDemo2{

public static void main(String[] args) {

int a1 = 5;

int b1 = ++ a1;

System.out.println(“a1=” + a1 + “,b1=” + b1);//a1=6,b1=6

int a2 = 5;

int b2 = a2 ++;

System.out.println(“a2=” + a2 + “,b2=” + b2);//a2=6,b2=5

}

}

比较权威的解释:

  • ++a表示取a的地址,增加它的内容,然后把值放在寄存器中;
  • a++表示取a的地址,把它的值装入寄存器,然后增加内存中的a的值;

如果不理解什么是寄存器,简单记住,都可以表示当前变量自身加1,区别是:

  • 前置++:先增加后使用
  • 后置++:先使用后增加

1.1.2. 赋值运算符(掌握)

叩丁狼教育Java基础教程

一个例子:

public class AssigningOperatorDemo {

public static void main(String[] args) {

// 把常量17赋值给int类型的变量a

int a = 17;

System.out.println(“a=” + a);

// += 把左边和右边的数据进行运算,最后赋值左边变量

a += 10;// 相当于a = a + 10

System.out.println(“a=” + a);

short s = 5;

s += 2; //底层相当于 s = (short) (s + 2)

System.out.println(“s=” + s);

}

}

1.1.3. 比较运算符(掌握)

用于比较两个变量或常量之间的大小关系,其结果是 boolean 类型(要么为true,要么为 false )。

其操作格式为:

boolean result = 表达式A 比较运算符 表达式B;

叩丁狼教育Java基础教程

注意:>=符号,表示大于或者等于。

public class ComparisonOperatorDemo {

public static void main(String[] args) {

//直接操作常量

System.out.println(10 > 5);//true

System.out.println(10 >= 5);//true

System.out.println(10 >= 10);//true

System.out.println(10 < 5);//false

System.out.println(10 <= 5);//false

System.out.println(10 <= 10);//true

System.out.println(10 == 10);//true

System.out.println(10 != 10);//false

//使用变量操作

int a = 10;

int b = 5;

boolean result = a > b;

System.out.println(result);//true

}

}

1.1.4. 三元运算符(掌握)

三元运算符,表示有三个元素参与的表达式,所以又称为三目运算符,其语义表示if-else(如果什么情况就做什么,否则做什么)。

语法格式:数据类型 变量 = boolean表达式 ? 结果A :结果B;

  • 如果boolean表达式结果:
  • 为true,则三元运算符的结果是结果A;
  • 为false,则三元运算符的结果是结果B;

注:三元运算符必须定义变量接受运算的结果,否则报错

三元运算符结果的类型由结果A和结果B来决定的,结果A和结果B的类型是相同的。

需求1:判断一个数99是不是偶数

public class TernaryOperatorDemo1{

public static void main(String[] args) {

int a = 99;

String result = a % 2 == 0 ? “偶数” : “奇数”;

System.out.println(result);

}

}

需求2:求99和20两个数中的最大值

public class TernaryOperatorDemo2{

public static void main(String[] args) {

int a = 99;

int b = 20;

int result = a > b ? a : b;

System.out.println(“最大值:”+result);

}

}

需求3:一共55条数据,每叶10个条数据,一共分多少页(常见的分页功能)

叩丁狼教育Java基础教程

public class TernaryOperatorDemo3{

public static void main(String[] args) {

int totalCount = 54;

int pageSize = 10;

int totalPage = totalCount % pageSize == 0

? totalCount / pageSize

: totalCount / pageSize + 1;

System.out.println(totalPage);

}

}

1.1.5. 逻辑运算符(掌握)

逻辑运算符用于连接两个boolean表达式,结果也是boolean类型的。

语法格式为:boolean result = boolean表达式A 逻辑运算符 boolean表达式B;

运算规则如下:

叩丁狼教育Java基础教程

规律:

  • 非:取反,!true则false,!false则true
  • 与:有false则false
  • 或:有true则true
  • 异或:^ 相同则false,不同则true

1.1.5.1. 基本使用(掌握)

public class LogicalOperatorDemo1 {

public static void main(String[] args) {

int a = 10;

int b = 20;

int c = 30;

//与操作

System.out.println((a > b) & (a > c));// false&false

System.out.println((a > b) & (a < c)); // false&true

System.out.println((a < b) & (a > c)); // true&false

System.out.println((a < b) & (a < c)); // true&true

//或操作

System.out.println((a > b) | (a > c));// false|false

System.out.println((a > b) | (a < c)); // false |true

System.out.println((a < b) | (a > c)); // true|false

System.out.println((a < b) | (a < c)); // true|true

//相反操作

System.out.println((a > b)); // false

System.out.println(!(a > b)); // !false

System.out.println(!!(a > b)); // !!false

}

1.1.5.2. &和&&的区别(掌握)

&:&左边表达式无论真假,&右边表达式都进行运算;

&&:如果&&左边表达式为真,&&右边表达式参与运算,否则&&右边表达式不参与运算,故称短路与。

| 和 || 的区别同理,||,左边为真,右边不参与运算。

public class LogicalOperatorDemo2 {

public static void main(String[] args) {

System.out.println(false & 1 / 0 == 1);//报错,说明右边执行了

System.out.println(false && 1 / 0 == 1);//不报错,说明右边没有执行

System.out.println(true | 1 / 0 == 1);//报错,说明右边执行了

System.out.println(true | 1 / 0 == 1);//不报错,说明右边没有执行

}

}

上述代码,一行一行的测试,测试完,注释该行代码。

1.1.6. 运算优先级

表达式的运算都是有优先级的,基本上和数学中的优先级类似,这里需要注意的是,赋值符号。

注意:赋值符号最后运算的,并且是从右向左运算的。

叩丁狼教育Java基础教程

本系列教程为叩丁狼Java基础班内部教材,若要获得最好的学习效果,需要配合对应教学视频一起学习。需要教学视频,请私信作者即可。

文章来源:智云一二三科技

文章标题:Java入门超经典内部教程连载(四)

文章地址:https://www.zhihuclub.com/187990.shtml

关于作者: 智云科技

热门文章

网站地图