运算符

打印 上一主题 下一主题

主题 861|帖子 861|积分 2583

运算符

运算符和表达式
  1. int a = 10;
  2. int b = 20;
  3. int c = a + b;
复制代码
+:运算符,并且是算术运算符
a + b:表达式,由于+是算术运算符,所以这个表达式叫算术表达式
算术运算符

符号

符号作用+加-减*乘/除%取模、取余
  1. public class ArithmeticoperatorDemo1 {
  2.     public static void main(String[] args) {
  3.         //+
  4.         System.out.println(3 + 2);//5
  5.         //-
  6.         System.out.println(5 - 1);//4
  7.         //*
  8.         System.out.println(7 * 9);//63
  9.         //如果在运算的时候有小数参与
  10.         //结论:
  11.         //在代码中,如果有效数参与,结果有可能不精确的。
  12.         System.out.println(1.1 + 1.1);//2.2
  13.         System.out.println(1.1 + 1.01);//2.1100000000000003
  14.         //除法
  15.         //结论:
  16.         //1.整数参与计算,结果只能得到整数
  17.         //2.小数参与计算,结果有可能是不精确的
  18.         System.out.println(10 / 2);//5
  19.         System.out.println(10 / 3);//3
  20.         System.out.println(10.0 / 3);//3.3333333333333335
  21.         //取模、取余。实际上也是做除法运算,只不过得到的是余数而已。
  22.         System.out.println(10 % 2);//0
  23.         System.out.println(10 % 3);//1
  24.         
  25.         //应用场景:
  26.         //1.可以用取模判断,A是否可以被B整除
  27.         //A % B    10 % 3
  28.         //2.可以判断A是否为偶数
  29.         //A % 2 如果结果为0,那么证明A是一个偶数。如果结果为1,那么证明A是一个奇数
  30.         //3.斗地主发牌
  31.         //三个玩家
  32.         //把每一张牌都定义一个序号
  33.         //拿着序号 % 3 如果结果为1,就发给第一个玩家
  34.         //如果结果为2,那么就发给第二个玩家
  35.         //如果结果为0,那么就发给第三个玩家
  36.     }
  37. }
复制代码
练习--数值拆分

需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
公式总结:

  • 个位:数值 % 10
  • 十位:数值 / 10 % 10
  • 百位:数值 / 100 % 10
  • 千位:数值 / 1000 % 10
  • ...
  1. import java.util.Scanner;
  2. public class Test1 {
  3.     public static void main(String[] args) {
  4.         //键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
  5.         //1.键盘录入
  6.         Scanner sc = new Scanner(System.in);
  7.         System.out.println("请输入一个三位数");
  8.         int number = sc.nextInt();
  9.         //2.获取个位,十位,百位
  10.         //公式:
  11.         //个位:  数字 % 10
  12.         //十位:  数字 / 10 % 10
  13.         //百位:  数字 / 10 / 10 % 10
  14.         //...
  15.         int ge = number % 10;
  16.         int shi = number / 10 % 10;
  17.         int bai = number / 100 % 10;
  18.         System.out.println(ge);
  19.         System.out.println(shi);
  20.         System.out.println(bai);
  21.     }
  22. }
复制代码
数字相加

数字相加

数字进行运算时,数据类型不一样不能运算,需要转成一样的,才能运算。
类型转换的分类


  • 隐式转换(自动类型提升)

    • 取值范围的数值-->取值范围的数值
      1. //范例:
      2. int a = 10;
      3. double b = a;//b = 10.0
      复制代码
      取值范围:double>float>long>int>short>byte
    • 隐式转换的两种提升规则

      • 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
      • byte、short、char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算
        1. public class Test {
        2.     public static void main(String[] args) {
        3.         int a = 10;//取值范围小
        4.         double b = 12.3;//取值范围大
        5.         
        6.         double c = a + b;//+ 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
        7.     }
        8. }
        复制代码
        1. public class Test {
        2.     public static void main(String[] args) {
        3.         byte a = 10;
        4.         byte b = 20;
        5.         
        6.         int c = a + b;//byte、short、char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算
        7.     }
        8. }
        复制代码


  • 强制转换

    • 取值范围的数值-->取值范围的数值(如果把一个取值范围大的数值,赋值给取值范围小的变量。是不允许直接赋值的。如果一定要这么做就需要加入强制转换)
    • 格式:目标数据类型 变量名 = (目标数据类型) 被强转的数据;
      1. //范例:
      2. double a = 12.3;
      3. int b = (int) a;
      复制代码
      1. //范例:
      2. int a = 300;
      3. byte b = (byte) a;//会出现错误,byte的取值范围是-128~127,300超出取值范围
      复制代码
      1. //范例:
      2. public class ArithmeticoperatorDemo2 {
      3.     public static void main(String[] args) {
      4.         byte b1 = 10;
      5.         byte b2 = 20;
      6.         //现在要强转的是b1 + b2计算之后的结果。
      7.         //(byte)b1 + b2 强转的是b1,并不是最终的结果
      8.         byte result = (byte) b1 + b2;//错误
      9.         byte result = (byte) (b1 + b2);//正确
      10.         System.out.println(result);//30
      11.     }
      12. }
      复制代码

字符串相加

字符串的“+”操作


  • 当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。
    会将前后的数据进行拼接,并产生一个新的字符串。

      1. "123" + 123//结果是"123123"
      复制代码

  • 连续进行“+”操作时,从左到右逐个执行。

      1. 1 + 99 +"世界"//结果是"100世界"
      复制代码
    1. //范例:
    2. int age = 18;
    3. System.out.println("刚满" + age + "岁");//"刚满18岁"
    4. System.out.println("刚满" + "age" + "岁");//"刚满age岁"
    复制代码
    1. //范例:
    2. System.out.println(1 + 2 + "abc" + 2 + 1);//"3abc21"
    复制代码
练习:数值拆分

需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
  1. import java.util.Scanner;
  2. public class Test1 {
  3.     public static void main(String[] args) {
  4.         //键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
  5.         //1.键盘录入
  6.         Scanner sc = new Scanner(System.in);
  7.         System.out.println("请输入一个三位数");
  8.         int number = sc.nextInt();
  9.         //2.获取个位,十位,百位
  10.         //公式:
  11.         //个位:  数字 % 10
  12.         //十位:  数字 / 10 % 10
  13.         //百位:  数字 / 10 / 10 % 10
  14.         //...
  15.         int ge = number % 10;
  16.         int shi = number / 10 % 10;
  17.         int bai = number / 100 % 10;
  18.         System.out.println("个位是" + ge);
  19.         System.out.println("十位是" + shi);
  20.         System.out.println("百位是" + bai);
  21.     }
  22. }
复制代码
字符相加


  • 字符 + 字符字符 + 数字 时,会把字符通过ASCLL码表查询到对应的数字再进行计算。
    1. //范例:
    2. System.out.println(1 + 'a');//98
    3. System.out.println('a' + "abc");//"aabc"
    复制代码
自增自减运算符

基本用法

符号作用说明++加变量的值加1--减变量的值减1

  • 注意事项:++和--既可以放在变量的前面,也可以放在变量的后面
    1. int a = 10;
    2. a++;//(++a;)后加加(先加加),表示将变量里面得值加1
    3. System.out.println(a);//11
    复制代码
    单独使用(用法一):++和--无论是放在变量的前边还是后边,单独写一行结果都是一样的
    1. //范例:
    2. public class ArithmeticoperatorDemo3 {
    3.     public static void main(String[] args) {
    4.         //++ 和 --
    5.         int a = 10;
    6.         //表示把变量a里面的值+1
    7.         a++;
    8.         System.out.println(a);//11
    9.         //表示把变量a里面的值+1
    10.         ++a;
    11.         System.out.println(a);//12
    12.         //表示把变量a里面的值-1
    13.         a--;
    14.         System.out.println(a);//11
    15.         //表示把变量a里面的值-1
    16.         --a;
    17.         System.out.println(a);//10
    18.     }
    19. }
    复制代码
应用场景一:
一岁-->生日后-->两岁
  1. int age = 1;
  2. age++;
  3. System.out.println(age);
复制代码
应用场景二:
购买物品增减购买数量时
-2+应用场景三:数¥号
¥&¥&¥++++++参与计算(用法二):

  • 先用后加
    1. int a = 10;
    2. int b = a++;//a=11,b=10
    复制代码
  • 先加后用
    1. int a = 10;
    2. int b = ++a;//a=11,b=11
    复制代码
练习
  1. public class ArithmeticoperatorDemo4 {
  2.     public static void main(String[] args) {
  3.         int x = 10;
  4.         //后++:先用后加
  5.         int y = x++;
  6.         //先++:先加后用
  7.         int z = ++x;
  8.         System.out.println("x:" + x);//12
  9.         System.out.println("y:" + y);//10
  10.         System.out.println("z:" + z);//12
  11.     }
  12. }
复制代码
赋值运算符

分类

符号作用说明=赋值int a = 10,将10赋值给变量a+=加后赋值a+ = b,将a+b的值给a-=减后赋值a -= b,将a-b的值给a*=乘后赋值a *= b,将a×b的值给a/=除后赋值a /= b,将a÷b的商给a%=取余后赋值a %=b,将a÷b的余数给a注意事项:+=,-=,*=,/=,%= 底层都隐藏了一个强制类型转换
  1. //范例:
  2. public class ArithmeticoperatorDemo1 {
  3.     public static void main(String[] args) {
  4.         //+=
  5.         //规则:将左边和右边进行相加,然后再把结果赋值给左边
  6.         int a = 10;
  7.         int b = 20;
  8.         a += b;//等同于 a = (int) (a + b);
  9.         System.out.println(a);
  10.         System.out.println(b);
  11.         //细节:
  12.         //+=,-=,*=,/=,%= 底层都隐藏了一个强制类型转换
  13.         short s = 1;
  14.         s += 1;//等同于:s = (short) (s + 1);
  15.         System.out.println(s);//2
  16.     }
  17. }
复制代码
关系运算符

(关系运算符/比较运算符)的分类

符号说明==a==b,判断a和b的值是否相等,成立为true,不成立为false!=a!=b,判断a和b的值是否不相等,成立为true,不成立为false<blockquote>
|a>b,判断a是否大于b,成立为true,不成立为false
=|a>=b,判断a是否大于等于b,成立为true,不成立为false
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小小小幸运

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表