Java基础系列6-Java的运算符

一.运算符概述

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

用运算符把常量或者变量连接起来符号java语法的式子就可以称为表达式。
不同运算符连接的式子体现的是不同类型的表达式。
定义两个int类型的变量a、b,做加法(a + b)

常用运算符:

  1. 算术运算符
  2. 赋值运算符
  3. 关系运算符
  4. 逻辑运算符
  5. 三元运算符

1.1 算术运算符

算数运算符:
+、-、*、/、%、++、--

代码1:

package Java_study;

public class yunsuanfu {
    public static void main(String[] args) {
    //定义两个int类型的变量
    int a = 5;
    int b = 3;
    //8
    System.out.println(a + b);
    //2
    System.out.println(a - b);
    //15
    System.out.println(a * b);
    //求商, 5/3=1.66(int取整数)=1
    System.out.println(a / b);
    // 求余数 5%3=2
    System.out.println(a % b);
    System.out.println("----------");
    // 整数计算,默认为整数 int类型 5/4=1
    System.out.println(5 / 4);
    //带小数计算,默认为浮点 double 类型 5 /4 = 1.25
    System.out.println(5.0 / 4);
    //带小数计算,默认为浮点 double 类型 5 /4.0 = 1.25
    System.out.println(5 / 4.0);
    }
}

测试记录1:

8
2
15
1
2
----------
1
1.25
1.25

字符和字符串参与加法运算【‘a’+10=57】
字符参与运算其实是拿该字符对应的数值来操作:

  1. ‘a’ 97
  2. ‘A’ 65
  3. ‘0’ 48

字符串参与运算这里其实做的不是加法运算,而是字符串拼接。
字符串和其他类型的数据做拼接,结果是字符串类型的。

代码2:

package Java_study;

public class yunsuan2 {
    public static void main(String[] args) {
        //定义两个变量,一个int类型,一个char类型
        int a = 10;
        char ch = 'a';
        // 'a' + 10 = 97 + 10 = 107
        System.out.println(a + ch);
        System.out.println("----------");
        
        //字符串做加法
        //helloworld
        System.out.println("hello" + "world" );
        //hello10
        System.out.println("hello" + 10);
        //hello1020
        System.out.println("hello" + 10 +20);
        //30hello
        System.out.println(10 + 20 + "hello");
    }

}

测试记录:

107
----------
helloworld
hello10
hello1020
30hello

自增自减运算符【i++ 与 ++i】

  1. ++,--运算符:对变量做加1或者减1的操作。
  2. ++或者–既可以放在变量的后面,也可以放在变量的前面。
  3. 单独使用的时候,++或者–无论是放在变量的前面还是后面,结果是一样的。
  4. 参与操作的时候:
    1)如果 ++ 或者 - - 在变量的后面,先拿变量参与操作,后变量做++或者- -
    2)如果 ++ 或者 - - 在变量的前面,先变量做++或者- -,后拿变量参与操作

代码3:

package Java_study;

public class yunsuan3 {
    public static void main(String[] args) {
        //定义一个int类型的变量
        int i = 10;
        System.out.println("i:" + i);
        
        // i = i +1 = 10 +1 = 11
        int b = ++i;
        System.out.println("i:" + i);
        System.out.println("b:" + b);
        
        // b = i = 11
        // (然后 i= i+ 1 = 12)
        b = i++;
        // i = 12
        System.out.println("i:" + i);
        // b = 11
        System.out.println("b:" + b);
    }

}

测试记录:

i:10
i:11
b:11
i:12
b:11

1.2 赋值运算符

  1. 基本的赋值运算符:=
  2. 扩展的赋值运算符:+=,-=,*=,/=,%=
    +=: a+=20;相当于a = (a的数据类型)(a + 20);

代码:

package Java_study;

public class yunsuan4 {
    public static void main(String[] args) {
        //定义变量
        int a = 10; // 把10赋值给int类型的变量a
        System.out.println("a:" + a);
        
        //扩展的赋值运算符: +=
        //把运算符左边的数据和右边的数据进行运算,然后把结果赋值给左边
        // a = a +20
        a +=20;
        System.out.println("a:" + a);
        
        // short s = 1;
        // s = s + 1;
        
        //扩展的赋值运算符隐含了强制类型转换
        //a += 20 等价于 a = (a的数据类型)(a+20)
        short s = 1;
        s += 1;
        System.out.println("s:" + s);
    }

}

测试记录:

a:10
a:30
s:2

1.3 关系运算符(比较运算符)

关系运算符包含以下内容:
==、!=、>、>=、<、<=

关系运算符的结果都是boolean型,也就是要么是true,要么是false。

注意事项:
关系运算符“==”不能误写成“=”。

代码:

package Java_study;

public class yunsuan5 {
    public static void main(String[] args) {
        //定义三个变量
        int a = 10;
        int b = 20;
        int c = 10;
        
        //==
        System.out.println("------[==]------");
        // a == b : false (10=20)
        System.out.print("a ==b:");
        System.out.println(a == b);
        // a == c : true (10=10)
        System.out.print("a == c:");
        System.out.println(a == c);
        
        //!=
        System.out.println("----[!=]------");
        // a != b : true (10!=20)
        System.out.print("a != b:");
        System.out.println(a != b);
        // a != c :false (10!=10)
        System.out.print("a != c:");
        System.out.println(a != c);
        
        //>
        System.out.println("-----[>]------");
        //a > b: false (10>20)
        System.out.print("a > b:");
        System.out.println(a > b);
        // a > c false (10>10)
        System.out.print("a > c:");
        System.out.println(a > c);
        
        //>=
        System.out.println("------[>=]------");
        // a >= b: false (10>20)
        System.out.print("a >= b:");
        System.out.println(a >= b);
        // a >= c :true (10>=10)
        System.out.print("a >= c:");
        System.out.println(a >= c);
        
        // == 与 =
        System.out.println("------[==与=]------");
        // a == b: false (10=10)
        System.out.print("a == b:");
        System.out.println(a == b);
        // a = b : 20 (先把b的值付给了a,再吧a作为结果输出)
        System.out.print("a = b:");
        System.out.println(a = b);
    }

}

测试记录:

------[==]------
a ==b:false
a == c:true
----[!=]------
a != b:true
a != c:false
-----[>]------
a > b:false
a > c:false
------[>=]------
a >= b:false
a >= c:true
------[==与=]------
a == b:false
a = b:20

1.4 逻辑运算符

逻辑运算符用于连接关系表达式,在Java中不可以写成3<x<6,应该写成x>3 && x<6 。

逻辑运算符:
与【&】【&&】、或【||】、非【!】

结论:

  1. 与【&】【&&】:有false则false。
    1)& 不管前面的条件是否正确,后面都执行
    2)&& 前面条件正确时,才执行后面,不正确时,就不执行,就效率而言,这个更好
  2. 或【||】:有true则true。
  3. 非【!】:非false则true,非true则false。
    特点:偶数个【!】不改变本身。

代码:

package Java_study;

public class yunsuanfu6 {
    public static void main(String[] args) {
        //定义变量
        int a = 3;
        int b = 4;
        int c = 5;
        
        //&&逻辑与
        System.out.println("-----[&&逻辑与 满足全部条件]------");
        //(3 > 4) && (3 > 5) ==> false && false :false
        System.out.print("(3 > 4) && (3 > 5) ==> false && false :false");
        System.out.println((a > b) && (a > c));
        //(3 < 4) && (3 > 5) ==> true && false : false
        System.out.print("(3 < 4) && (3 > 5) ==> true && false : ");
        System.out.println((a < b) && (a > c)); //true && false
        //(3 > 4) && (3 < 5) ==> false && true : false
        System.out.print("(3 > 4) && (3 < 5) ==> false && true : ");
        System.out.println((a > b) && (a < c)); //false && true
        //(3 < 4) && (3 < 5): ==> true && true : true
        System.out.print("(3 < 4) && (3 < 5): ==> true && true : ");
        System.out.println((a < b) && (a < c)); //true && true


        //||逻辑或
        System.out.println("-----【||逻辑或 满足任一条件】-------");
        //(3 > 4) || (3 > 5) ==> false || false : false
        System.out.print("(3 > 4) || (3 > 5) ==> false || false : ");
        System.out.println((a > b) || (a > c));
        //(3 < 4) || (3 > 5) ==> true || false : true
        System.out.print("(3 < 4) || (3 > 5) ==> true || false : ");
        System.out.println((a < b) || (a > c));
        //(3 > 4) || (3 < 5) ==> false || true : true
        System.out.print("(3 > 4) || (3 < 5) ==> false || true : ");
        System.out.println((a > b) || (a < c));
        //(3 < 4) || (3 < 5) ==> true || true : true
        System.out.print("(3 < 4) || (3 < 5) ==> true || true : ");
        System.out.println((a < b) || (a < c));


        //!逻辑非
        System.out.println("-----【!逻辑非 取反】-------");
        //(3 > 4) : false
        System.out.print("(3 > 4) : ");
        System.out.println((a > b));
        //!(3 > 4) ==> ! false : true
        System.out.print("!(3 > 4) ==> ! false : ");
        System.out.println(!(a > b));
        //!!(3 > 4)  ==> !! false : false
        System.out.print("!!(3 > 4)  ==> !! false : ");
        System.out.println(!!(a > b));
    }

}

测试记录:

-----[&&逻辑与 满足全部条件]------
(3 > 4) && (3 > 5) ==> false && false :falsefalse
(3 < 4) && (3 > 5) ==> true && false : false
(3 > 4) && (3 < 5) ==> false && true : false
(3 < 4) && (3 < 5): ==> true && true : true
-----【||逻辑或 满足任一条件】-------
(3 > 4) || (3 > 5) ==> false || false : false
(3 < 4) || (3 > 5) ==> true || false : true
(3 > 4) || (3 < 5) ==> false || true : true
(3 < 4) || (3 < 5) ==> true || true : true
-----【!逻辑非 取反】-------
(3 > 4) : false
!(3 > 4) ==> ! false : true
!!(3 > 4)  ==> !! false : false

1.5 三元运算符

格式:
(关系表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;

代码:

package Java_study;

public class yunsuanfu7 {
    public static void main(String[] args) {
        // 定义两个变量
        int a = 10;
        int b = 20;
        
        // (10>20) => false => 表达式2 => b => 20
        int c = (a > b) ? a : b;
        //c:20
        System.out.println("c:" + c);
        
        
        a = 10;
        b = 10;
        // ( 10 == 10) => true => 表达式1 => true
        boolean flag = ( a == b) ? true : false;
        //flag:true
        System.out.println("flag:" + flag);
        
    }

}

测试记录:

c:20
flag:true

参考:

  1. https://blog.csdn.net/qq_43529621/article/details/113182363
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容