Java基础之算术运算符

举报
袁袁袁袁满 发表于 2022/04/04 18:19:18 2022/04/04
【摘要】 1 运算符 1.1 算术运算符 public static void main(String[] args) { int a = 6; int b = 4; System.out.println(a + b); //10 System.out.println(a - b); //2 System.out.println(...

1 运算符

1.1 算术运算符

在这里插入图片描述

 public static void main(String[] args) {
        int a = 6;
        int b = 4;
        System.out.println(a + b); //10
        System.out.println(a - b); //2
        System.out.println(a * b); //24
        System.out.println(a / b); //1
        System.out.println(a % b); //2
        //除法得到商,取余得到余数
        
		//整数相除只能得到整数,要想得到小数要有浮点数参与
        System.out.println(6.0 / 4); //1.5
    }

1.1.1 字符的“+”操作

  • 字符进行“+”操作时,拿的是字符在计算机底层 对应的数值 进行操作
    • ‘A’ > 65
    • ‘a’ > 97
    • ‘o’ > 48
  • 算术运算符表达式中 多个基本数据类型 的值的时候,整个算术运算符的 类型 会 自动提升
  • 提升规则:
    • 1.byte类型、short类型和char类型都会提升到int类型
    • 2.整个表达式的类型自动提升到表达式中 最高等级操作数同样类型
      等级顺序:byte、short、char -> int -> long -> float -> double
  • 范例:
public class Demo {
    public static void main(String[] args) {
        int i = 10;
        char c = '0';
        System.out.println(i + c); //75

        //char cj = i + c;
        //char类型会自动提升到int类型
        int j = i + c;
        System.out.println(j); //75

		//10.1是double类型高于int类型
		//int k = 10 + 10.1; 
		double k = 10 + 10.1;
    }
}

1.1.2 字符串的“+”操作

  • 当 “+” 操作出现字符串时,这个 “+” 是 字符串连接符 ,而不是算术运算符
  • 范例:
    System.out.println('it'+6+66) //it666
    
  • 在 “+” 操作中,如果出现字符串就是连接符,否则就是算术运算。当连续 “+” 操作时,从左到右依次执行。
  • 范例:
    System.out.println(1+99+'it') //100it
    

1.2 赋值运算符

在这里插入图片描述

  • 注意事项:扩张的赋值运算符 隐含 强制类型转换。

1.3 自增自减运算符

在这里插入图片描述

  • ++ 和 - - 可以放变量前面也可以放变量后面
  • 单独使用时, ++ 和 - - 放变量前后结果都是一样的
  • 参与操作使用时,如果放变量后面,先拿变量参与操作,后拿变量做++或- -;
    参与操作使用时,如果放变量前面,先拿变量做++或- -,后拿变量参与操作。
  • 范例:
public class Demo {
    public static void main(String[] args) {
        //单独使用
        int i = 10;
        //i++;
        ++i;
        System.out.println(i); //11
        //参与操作使用++在后面
        int b = 10;
        int j = b++;
        System.out.println(b); //11
        System.out.println(j); //10
        //参与操作使用++在前面
        int c = 10;
        int k = ++c;
        System.out.println(c); //11
        System.out.println(k); //11
    }
}

1.4 关系运算符

在这里插入图片描述

  • 关系运算符的结果都是boolean类型,要么true,要么false

1.5 逻辑运算符

符号 作用 说明
& 逻辑与 同真为真,其余为假(满足两个为真)
| 逻辑或 同假为假,其余为真(满足一个为真即可)
^ 逻辑异或 相同为false,不同为true
逻辑非 取反

1.6 短路逻辑运算符

符号 作用 说明
&& 短路与 作用与&相同,但是有短路效果
|| 短路或 作用与竖线相同,但是有短路效果
  • 范例:
public class Demo {
    public static void main(String[] args) {
        int i = 10;
        int j = 20;

        //&& :具有短路效果,符号左边为false的时候,右边就不执行
        //如果符号左边为true,右边要继续执行
        System.out.println((i++>100) && (j++>100)); //false & false,
        System.out.println("i="+i); //11
        System.out.println("j="+j); //20
    }
}
  • 注意事项

    1、逻辑与 &:无论左边真假,右边都要执行

    2、短路与 &&:如果左边为真,右边执行;如果 左边为假,右边不执行

    3、逻辑或 | : 无论左边真假,右边都要执行

    4、短语或 ||:如果左边为假,右边执行;如果 左边为真,右边不执行

1.7 三元运算符

  • 格式:关系表达式 ? 表达式1 :表达式2;
  • 范例:a > b ? a : b;
  • 计算规则
    首先计算关系 表达式的值 如果值为 true,表达式1 的值就是运算结果;
    如果值为 false , 表达式2 的值就是运算结果。
  • 范例
public class Demo {
    public static void main(String[] args) {
        int i = 10;
        int j = 20;

        //输出两个数据中的较大值
        int max = i > j ? i : j;
        System.out.println("max=" + max); //20
    }
}

1.8 Scanner使用的基本步骤

  • 导包的三种方式

    • 1、手动导包:import java.util.Scanner;
    • 2、快捷键导包:创建好Scanner对象后,鼠标放在Scanner上按Alt+Enter
    • 3、自动导包:写Scanner单词创对象时,按tab补全导包
  • 导包的步骤

    • 1.导包(导包必须在定义类上面)
    import java.util.Scanner; 
    
    • 2.创建对象(只有sc是变量名可以变,其他都不可以变)
    Scanner sc = new Scanner(System.in); 
    
    • 3.接收数据
    int i = sc.nextInt(); //i是变量名可以变,其他都不能变
    sc.nextInt(); //Ctrl+alt+v:补全生成左边的内容
    

1.9 案例:三个和尚

  • 案例:输入三个和尚的身高,利用三元运算符比较求出最高的和尚
import java.util.Scanner;
public class Demo {
    public static void main(String[] args) {
        //从键盘输出三个身高求出最高值
        Scanner sc = new Scanner(System.in);

        //键盘输入三个数值
        int height1 = sc.nextInt();
        int height2 = sc.nextInt();
        int height3 = sc.nextInt();

        int temp = (height1>height2) ? height1:height2;
        int max = (temp>height3) ? temp:height3;
        System.out.println(max);
    }
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。