栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

day03

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day03

对常量或者变量进行操作的符号就是运算符,Java中提供了很多种运算符,例如:算术运算符、赋值运算符、比较运算符、逻辑运算、条件运算符...

算术运算符

代码示例

public class Demo {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;

        System.out.println(a + b);// 7
        System.out.println(a - b);// -1
        System.out.println(a * b);// 12
        System.out.println(a / b);// 0
        System.out.println(a % b);// 3
        //商*除数 + 余数 = 被除数
        System.out.println(5 % 2);//1
        System.out.println(5 % -2);//1
        System.out.println(-5 % 2);//-1
        System.out.println(-5 % -2);//-1
        
    }
}

注意事项:

  • 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。
  • 整数之间做除法时,只保留整数部分而舍弃小数部分。整数使用以上运算符,无论怎么计算,也不会得到小数

“+”号的两种用法

  • 用法一:对于+两边都是数值的话,+就是加法的意思
  • 用法二:对于+两边至少有一边是字符串得话,+就是拼接的意思
public class Demo {
    public static void main(String[] args) {
        //对于+两边都是数值的话,+就是加法的意思
        System.out.println(3 + 4);//7

        //对于+两边至少有一边是字符串得话,+就是拼接的意思
        String str2 = "Java";
        // String + int --> String
        System.out.println(str2 + 520); // Java520
        // String + int + int
        // String		+ int
        // String
        System.out.println(str2 + 5 + 20); // Java520
    }
}

自加自减运算

++ 运算,变量自己的值加1。反之,-- 运算,变量自己的值减少1,用法与++ 一致。

单独使用

变量在单独运算的时候,变量前++和变量后++,变量的是一样的;

  • 变量前++   :例如 ++a 。
  • 变量后++   :例如 a++ 。
public class Demo {
    public static void main(String[] args) {
        // 定义一个int类型的变量a
        int a = 3;
        ++a;
        System.out.println(a);//4
        a++;
        // 无论是变量前++还是变量后++,结果都是加1
        System.out.println(a);//5
    }
}

复合使用

和其他变量放在一起使用或者和输出语句放在一起使用,前++和后++就产生了不同。

  • 变量前++ :变量先自身加1,然后再取值。
  • 变量后++ :变量先取值,然后再自身加1。
public class Demo {
    public static void main(String[] args) {
        // 其他变量放在一起使用
        int x = 3;
        // y的值是4,x的值是4,
        int y = ++x;
        System.out.println(y);//4
        System.out.println(x);//4

        int a = x++;
        // a的值是4,x的值是5
        System.out.println(a); //4
        System.out.println(x); //5
        System.out.println("==========");

        // 和输出语句一起
        int z = 5;
        // 输出结果是6,z的值也是6
        System.out.println(++z);//6
        // 输出结果是6,z的值是7
        System.out.println(z++);//6
        System.out.println(z);//7

        int i = 1;
        int j = i++ + ++i * i++;
        System.out.println(j); //10
    }
}
赋值运算符

赋值运算符,就是将符号右边的值,赋给左边的变量。

代码示例

public class Demo {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        //基本赋值运算符
        a = a + b;
        System.out.println(a); // 7
        System.out.println(b); // 4
        
        
        int c = 30, d = 20;
        //c = c % d
        c %= d;
        System.out.println(c);//10
        System.out.println(d);//20
    }
}

注意事项:

  • 运算结果的数据类型和左侧变量的数据类型不一致,隐藏强制类型转换
  • 整数常量只要不超出所赋值的整数变量的取值范围,可以直接赋值,内部隐藏强制类型转换
  • 基本赋值运算符,支持连续赋值。不建议使用,阅读性不好。
public class Demo {
    public static void main(String[] args) {
        short s = 3;
        // s = s + 4; 代码编译报错,因为将int类型的结果赋值给short类型的变量s时,可能损失精度
        s += 4; // 代码没有报错
        //因为在得到int类型的结果后,JVM自动完成一步强制类型转换,将int类型强转成short
        System.out.println(s);//7

        int j = 1;
        j += ++j * j++;//相当于  j = j + (++j * j++);
        System.out.println(j);//5
    }
}
关系运算符/比较运算符

关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。

代码示例

public class Demo {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        System.out.println(a < b); // true
        System.out.println(a > b); // false
        System.out.println(a <= b); // true
        System.out.println(a >= b); // false
        System.out.println(a == b); // false
        System.out.println(a != b); // true
    }
}

注意事项:

  • 比较运算符,是两个数据之间进行比较的运算,运算结果一定是boolean值true或者false 。
  • 其中>,<,>=,<=不支持boolean,String类型,
  • ==和!=支持boolean和String。
  • 千万不要把“==”误写成“=”,"=="是判断是否相等的关系,"="是赋值。
逻辑运算符

逻辑运算符,是用来连接两个布尔类型结果的运算符(!除外),运算结果一定是boolean值true或者false

代码示例

public class Demo {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        int c = 5;

        // & 与,且;有false则false
        System.out.println((a > b) & (a > c));
        System.out.println((a > b) & (a < c));
        System.out.println((a < b) & (a > c));
        System.out.println((a < b) & (a < c));
        System.out.println("===============");
        // | 或;有true则true
        System.out.println((a > b) | (a > c));
        System.out.println((a > b) | (a < c));
        System.out.println((a < b) | (a > c));
        System.out.println((a < b) | (a < c));
        System.out.println("===============");
        // ^ 异或;相同为false,不同为true
        System.out.println((a > b) ^ (a > c));
        System.out.println((a > b) ^ (a < c));
        System.out.println((a < b) ^ (a > c));
        System.out.println((a < b) ^ (a < c));
        System.out.println("===============");
        // ! 非;非false则true,非true则false
        System.out.println(!false);
        System.out.println(!true);
    }
}

&&和&区别,||和|区别

  • &&和&结果一样,&&有短路效果,左边为false,右边不执行;&左边无论是什么,右边都会执行。
  • ||和|结果一样,||有短路效果,左边为true,右边不执行;|左边无论是什么,右边都会执行。
public class Demo {
    public static void main(String[] args) {
        int a = 2;
        
        System.out.println((3 > 5) && (++a > 2));//false
        System.out.println(a);//2: 说明++a没有计算,&&右侧的表达式没有执行

        int b = 2;
        
        System.out.println((3 > 5) & (++b > 2));//false
        System.out.println(b);//3

        System.out.println("-------------------");
        int c = 2;
        
        System.out.println((3 < 5) || (++c > 2));//true
        System.out.println(c);//2

        int d = 2;
        
        System.out.println((3 < 5) | (++d > 2));//true
        System.out.println(d);//3
    }
}
三元运算符

格式: 数据类型 变量名称 = 布尔表达式1 ? 表达式2 : 表达式3;

计算方式:

  1. 计算布尔表达式1的结果,看是true还是false
  2. 如果布尔表达式1的结果为true,就把表达式2的结果赋值给左侧的变量
  3. 如果布尔表达式1的结果为false,就把表达式3的结果赋值给左侧的变量

代码示例

public class Demo {
    public static void main(String[] args) {
      
        //1:定义三个变量用于保存和尚的身高,单位为cm,这里仅仅体现数值即可。
        int h1 = 150;
        int h2 = 210;
        int h3 = 165;
        //2:用三元运算符获取前两个和尚的较高身高值,并用临时身高变量保存起来。
        int temp = h1 > h2 ? h1 : h2;
        //3:用三元运算符获取临时身高值和第三个和尚身高较高值,并用最大身高变量保存。
        int max = temp > h3 ? temp : h3;
        //4:输出结果
        System.out.println("这三个和尚中身高最高的是:" + max + "cm");
    }
}
位运算符

位运算符指的是二进制位的运算,先将十进制数转成二进制后再进行运算。在二进制位运算中,1表示true,0表示false。位运算是直接对二进制进行运算

代码示例

public class Demo {
    public static void main(String[] args) {
       
            System.out.println(12 << 1);  // 24
            System.out.println(12 << 2);  // 48

        }
}

运算符优先级

运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。 我们可以使用小括号来调整表达式的运算顺序。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583737.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号