java入门day03:运算符,数据转换

在职学习中,小伙伴们拿这个当个参考笔记就行了嗷,更新不定期的

1.算数运算符

补充:运算符,是对值进行计算

表达式:int a = 2 + 3  等号右边对字面量进行计算、拼接等就是表达式

运算符有  加、减、乘、除、取余 5种运算符。加减就略过啦大家代码瞧一瞧,多打印就懂了,一下是其余3种

以上为同类型数据运算,问题:整数+ 小数  怎么接收呢?----  类型转换

1.1 “+” 的不同场景

当+ 两边都是数字时,是运算符 1+1      // 2

当+ 两边有字符串时,是拼接 1+"1"    // "11"

当+ 有多个时,从左到右 是 1+1+"1"    // "21"

1.1.1  + 拼接的常用场景

拼接变量和字符串,让变量的数据更易读

//需求:打印出用户输入的三位数整数
public class ArithmeticoperatorDemo3 {
    public static void main(String[] args) {
//      1.获取键盘输入的数字
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
//      2.拆分出个十百位的数字
        int bai = num / 10 / 10 % 10;
        int shi = num / 10 % 10;
        int ge = num % 10;
//      3.拼接打印
        System.out.println("百位数是" + bai);
        System.out.println("十位数是" + shi);
        System.out.println("个位数是" + ge);

2.类型转换

2.1隐式转换

作用:当数据类型不同,但要放在一起计算时,转换为同类型数据进行计算

我们不用做特殊处理,运算时自动转换

例: 下图的 b 此时 等于  10.0 运算时,按照图底部的取值范围大小排序进行转换 

2.1.1小提大的规则:

  • 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
  • byte short char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算

左图:c 是double类型                                         右图:c是int类型   (根据小提大的第二个规则)

2.1.2大提小的规则:

使用场景: 把取值范围大的数值 赋值 给取值范围小的 变量

语法: 数据类型 变量名 = (目标数据类型)被强转的数据    目标数据类型和数据类型保持一致

注:有可能发生数据错误,注意数据类型的取值范围

例1:
double a = 12.3;
int b = (int)a;

例2:
byte a = 10;
byte b = 20

byte result = a + b   × byte运算时,会隐式转换成int
byte result = (byte) (a + b) √

2.1.3 字符相加

前提:数字相加时,我们知道byte short char三种类型运算时,隐式转换为int再计算。但是char是字符类型,隐式转换为int是什么样?

char c = 'a';
int b = c + 0;
System.out.println(b); // 97

为什么字符串a能对应数字97? ---- ASXII码表中,a对应的就是97.

结论:

当 char字符+char字符  或者  char字符+数字  时,会把字符通过ASXII码表查询到对应的数字再进行计算。

3.自增自减运算符 ++ 、--

3.1基础用法

++ 表示变量的值自己增加1‘  a++

-- 表示变量的值自己减少1   a--

应用场景: 年龄  购物车

注:前自增和后自增,如果单独使用 ---- 结果相同  开发中常见

                                   如果参与计算 ----  结果不一样

前自增:先加后用    

后自增:先用后加

import java.util.Scanner;
//键盘输入一个值,打印这个值
public class ArithmeticoperatorDemo2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // 键盘输入方法
        int a = sc.nextInt();  //键盘输入的值赋值给a变量
//        System.out.println(a); // 打印a

        int b = a++;
        System.out.println(b); // 1  先用后加  此时a = 2
        int c = ++a;
        System.out.println(c);  // 3  先加后用

    }
}

4.赋值运算符

赋值运算符底层会强制转换成接收结果的变量的数据类型

例:

short s = 1;
s += 1
System.out.println(s)  //2 short类型的2

解析:+= 做的事:short s = (short)(s+1)  强制转换成什么类型,是s的数据类型决定的

5.关系运算符

用于比较两个值,比较结果是boolean类型,只有true,false两种结果

注:书写注意区分  =  和 ==   。=是赋值,==是比较

练习:键盘输入两个整数,如果第一个整数大于第二个整数,输出true。否则输出false 

package com.itheima.arithmeticoperator;

import java.util.Scanner;

public class 比较运算符 {
    public static void main(String[] args) {
        Scanner sc1 = new Scanner(System.in);
        Scanner sc2 = new Scanner(System.in);
        int num1 = sc1.nextInt();
        int num2 = sc2.nextInt();
        boolean res = num1 > num2;
        System.out.println(res);  // 
    }
}

 6.逻辑运算符

作用: 判断一个数字大于5的同时,小于10

java中 x>5 & x<10

package com.itheima.arithmeticoperator;

public class luoji {
    public static void main(String[] args) {
        System.out.println(true & true); // true
        System.out.println(false | true); // true
        System.out.println(false ^ false); // false 相同为false,不常用
        System.out.println(!true); // false 取反
    }
}

6.1逻辑短路

逻辑短路是什么?   当左边的表达式,可以确定最终结果,就不再判断后面一个条件,提升代码效率

与&& 是左边为false出现短路。或|| 是左边为true出现短路

注:一定是&&  ||  单个&|没有逻辑短路效果

int a = 10;
System.out.println(a<10 && ++a>1); //false
System.out.println(a); //10 说明a<10为false时,&& 右边代码不执行
System.out.println(a<10 || ++a>1);
System.out.println(a); //11 右边执行了,说明没有逻辑短路

总结:常用逻辑运算符 &&与   ||或   !非

练习:键盘输入两个整数,如果输入一个为6,或者和为6的倍数,输出true,否则输出false

 7.三元运算符

语法:关系表达式 ? 表达式1:表达式2;

场景:求两个数的最大值

int max = a > b ? a : b;  a>b为true,结果是a,为false,结果是b。max接收结果

需求:动物园里有两只老虎,体重分别为通过键盘录入获得

请用程序实现判断两只老虎的体重是否相同。

分析:1.键盘录入两只老虎的体重 2.比较两只老虎的体重,并打印结果

import java.util.Scanner;

public class sanyuan {
    public static void main(String[] args) {
        Scanner sc1 = new Scanner(System.in);
        Scanner sc2 = new Scanner(System.in);
        System.out.println("请输入第一只老虎的体重");
        int tiger1 = sc1.nextInt();
        System.out.println("请输入第二只老虎的体重");
        int tiger2 = sc2.nextInt();

        String max = tiger1 == tiger2 ? "相同" : "不相同";
        System.out.println(max);
    }
}

练习:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个和尚的最高身高。

分析:1.先对比两个,存一个变量中,再用这个变量的值对比第三个

int height1 = 150;
int height2 = 165;
int height3 = 210;

int res = height1 > height2 ? height1 : height2;
int max = res > height3 ? res : height3;
System.out.println(max);

 8.运算符优先级

总结:想让谁优先计算,给谁加小括号

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值