Java Day2

Java

day2——2023.8.5

运算符

算术运算符
表达式

用运算符连接起来的式子,比如:a + b ,a > 3

一元运算符

只需要一个数据就可以进行操作的运算符,例如:自增++,自减–,-负号

++表示让某个值自身加一

——表示让某个值自身减一

++和——可以写在变量之前,也可以写在变量之后,写法:a++或者++a

++在前和在后面的区别:

1.如果是自身的运算,结果无区别

2.如果是做混合计算,存在区别

​ a++,先将a参与表达式运算,然后再给自身加一

​ ++a,先将a自身加一,再把a代入表达式

package com.iweb.airui369.day02.operator;

public class Demo01 {
    public static void main(String[] args) {
        int a = 10;
        int b;
//        a++;                     //11
//        ++a;                     //11
        System.out.println(a++);   //10
        System.out.println(a);     //11

        
    }
}
练习

int a = 10;

int b = a++; b=10

int c = --b; c=9 b=9

int d = ++c + b++; 10 +9

abcd的值 11 10 10 19

package com.iweb.airui369.day02.operator;

public class Exercise1 {
    public static void main(String[] args) {
        int a = 10;
        int b = a++;
        int c = --b;
        int d = ++c + b++;
        System.out.println(a);     //11
        System.out.println(b);     //10
        System.out.println(c);     //10
        System.out.println(d);     //19
    }
}
二元运算符

需要两个数据才可以进行操作的运算符,例如:加法+,赋值=

四则运算 + - * /

加法:+

如果是数字类型使用+,那么就是求和

如果是char类型使用+,那么会将char转为对应的数值(ascii码值)参与计算

如果字符串类型使用+,那么会将后面的内容,拼接到字符串内容后面

减法:-

没有特殊的用法,用来给数值求差值

乘法:*

用来给数值求乘积

除法:/

用来给数值求商,整数参与运算后,会将结果的小数部分省略,保留整数部分

求余:%

用来求两个数值之间的余数

int a1 = 11, b1 = 10 ,c1 = 10,d1 = 19;
        System.out.println(a1 + b1);         //21
        System.out.println('a' + 10);      //97+10=107
        System.out.println("100" + 10);    //10010
        System.out.println(100 / 3);       //33
        System.out.println(2.55 / 3.25);   //0.7846153846153846
        System.out.println(100 % 3);       //1
练习

有一个五位数,12345,希望这个数字与10做运算,得出这个五位数的个十百千万位的值

package com.iweb.airui369.day02.operator;

public class Exercise2 {
    public static void main(String[] args) {
        int x = 12345;
        int a = x % 10;   //个位
        int b = (x /10) % 10;   //十位
        int c = (x / 10/ 10) % 10;   //百位
        int d = (x / 10/ 10/ 10) % 10;  //千位
        int e = (x / 10/ 10/ 10/ 10) % 10;  //万位
        System.out.println("个位的值是:" + a);
        System.out.println("十位的值是:" + b);
        System.out.println("百位的值是:" + c);
        System.out.println("千位的值是:" + d);
        System.out.println("万位的值是:" + e);

    }
}

在这里插入图片描述

关系运算符

关系运算符也可以称为“比较运算符”,用于用来比较判断两个变量或者常量的大小,结果是true或者false

> , >= , < , <= , ==

package com.iweb.airui369.day02.operator;

public class Demo02 {
    public static void main(String[] args) {
        //比较运算符
        int a = 10,b = 20;
        System.out.println(a > b );   //F
        System.out.println(b < a );   //T
        System.out.println(b >= a );  //T

        //比较常量
        System.out.println(a > 5 );   //T

        //和多个数值比较
        //System.out.println(5 < a < 20 );   //不允许写在一起
        System.out.println(a > 5 && a < 20 );

        //==判断数值是否相等
        //直接比较基本类型
        System.out.println(10 == 10 );   //T
        System.out.println(a == 10 );    //T
        System.out.println(a == b );     //F

        System.out.println('a' == 97 );  //T

        //System.out.println("10" == a);  //字符串不能和基本类型使用==比较

        System.out.println(a % 2 == 0 );   //T
    }
}
逻辑运算符(短路现象)

把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断结果为true或者false

&& 逻辑与(短路与)

|| 逻辑或(短路或)

! 逻辑取反

& 逻辑与

| 逻辑或

package com.iweb.airui369.day02.operator;

public class Demo03 {
    public static void main(String[] args) {
        //逻辑运算符
        //&&将多个表达式连接起来,如果每个表达式结果都是true,最终的结果为true
        int a = 10,b = 20;
        System.out.println(a > 5 && b > 10 );   //true
        System.out.println(a < 5 && b > 10);    //false
        //&将多个表达式连接起来,如果每个表达式结果都是true,最终的结果为true
        System.out.println(a > 5 && b > 10 );   //true
        System.out.println(a < 5 && b > 10);    //false

        //短路效果,&&中,前面的表达式如果是false,后面的表达式就不会执行了
        System.out.println(a < 5 && b++ > 10 ); //a<5了,后面的表达式不再执行了,这里的b++没有执行
        System.out.println(b);   //20

        System.out.println(a < 5 & b++ > 10 ); 
        System.out.println(b);   //21
        
        
        // ||逻辑或,如果表达式都为false,结果都为false,有一个为true,最终结果为true
        System.out.println(a < 5 || b > 10 );   //true
        System.out.println(a < 5 |  b > 10 );   //true
        
        //||短路效果,前面表达式为true,后面表达式不再计算了
        System.out.println(a > 5 || b++ < 10);
        System.out.println(b);   //21
        
        
        //!逻辑取反,值为true,取反后为false,值是false,取反后为true
        System.out.println(!(a > 5 ));   //false
        System.out.println(!true);   //false
    }
}
位运算符(二进制)
& 位与运算符

连接两个数值进行运算,将数值转成二进制后,按位做运算,如果同时为1,结果为1,否则为0

举例:100&20

​ 0110 0100

​ 0001 0100

​ 0000 0100

| 位或运算符

连接两个数值进行运算,将数值转成二进制后,按位做运算,有一位为1,结果为1,否则为0

举例:100|20

​ 0110 0100

​ 0001 0100

​ 0111 0100

^位异或运算符

连接两个数值进行运算,将数值转成二进制后,按位做运算,位不同为1,位相同为0

举例:100^20

​ 0110 0100

​ 0001 0100

​ 0111 0000

~位取反运算符

只对一个数值进行运算,将数值转成2进制后,对补码进行运算,运算完之后,再将补码变回原码

正数的原码,反码,补码都是一样的

举例:~100

​ 原码:0110 0100

​ 取反:1001 1011

​ 减一:1001 1010

​ 取反:1110 0101

举例:~100

​ 原码:1110 0100

​ 反码:1001 1011

​ 补码(反码+1):1001 1100

​ 补码取反:0110 0011

package com.iweb.airui369.day02.operator;

public class Demo04 {
    public static void main(String[] args) {
        System.out.println(100 & 20);
        System.out.println(100 | 20);
        System.out.println(100 ^ 20);
        System.out.println(~100);
        System.out.println(~-100);
    }
}

在这里插入图片描述

位移运算符(二进制)

把数值,转为二进制后,往左或者往右移动指定的位数

>> 右移位运算符

<< 左位移运算符

        //位移运算
        //0000 0010 往左移4位 0010 0000 32
        System.out.println(2 << 4 );   //2 * 2^4

        //右位移运算符
        //0010 0000 往右移2位 0000 1000 8
        System.out.println(32 >> 2 );  //32/ 2^2
赋值运算符

=,+=,-=,*=,/=,%=

int a = 10; 将10赋值给a这个变量

package com.iweb.airui369.day02.operator;

public class Demo05 {
    public static void main(String[] args) {
        //赋值运算符
        //=,+=,-=,*=,/=,%=
        //a += 2; 表示 a = a + 2;
        int a = 10;
        a += 5;   //a = a + 5;  =左边的a,表示a这个变量名, =右边的a,表示找上面的a变量代入到这里
        System.out.println(a);   //15

        a -= 5;   //a = a - 5;
        System.out.println(a);   //10

        a *= 5;   //a = a * 5;
        System.out.println(a);   //50

        a /= 5;   //a = a / 5;
        System.out.println(a);   //10
        
        a %= 3;   //a = a % 3;
        System.out.println(a);   //1
    }
}
三元运算符(三目运算符):嵌套使用

语法:变量 = 表达式 ? 值1 :值2;

如果前面的表达式的结果是true,最终的变量的结果就是值1,如果是false,变量的结果就是值2

package com.iweb.airui369.day02.operator;

public class Demo06 {
    public static void main(String[] args) {
        //三元运算符
        //声明一个变量a = 10,声明一个变量b,如果a > 20,那么b的值等于a,否则b的值等于20;
        int a = 10;
        int b;
        b = a > 20 ? a : 20;
        System.out.println(b);


        //价格计算,如果购买的物品价格超过了500,那么结算总价就打9折,否则就按照原价结算
        int price = 600;
        double total = price > 500 ? price * 0.9 : price;
        System.out.println(total);


        //定义 x = 10, y = 20,z = 30,使用三元表达式,找出a,b,b中的最大值
        int x = 10,y = 20,z = 30;
        int max = (x > y) ? (x > z ? x : z) : (y > z ? y : z);
        System.out.println("最大值是" +max);
    }
}
Scanner(键盘录入)

Scanner 是一个类,这个类是由系统写好了,提供给我们使用的

我们在使用的时候,需要去把这个类的包导入进来,然后就可以使用它了

1,导包

import java.util.Scanner;

2,创建对象

Scanner sc = new Scanner(System.in);

3,使用对象,调用方法,获取到输入的值

int a = scanner.nextInt();

package com.iweb.airui369.day02.operator;

import java.util.Scanner;

public class Dem08 {
    public static void main(String[] args) {
        // 给Scanner取别名,随意取!
        Scanner abc = new Scanner(System.in);
        System.out.println("请输入a的值:");
        int a = abc.nextInt();   //用户可以自由赋值给 a(在int范围内)

        System.out.println("请输入b的值:");
        int b = abc.nextInt();   //用户可以自由赋值给 b(在int范围内)

        System.out.println("a + b 的值为:" + (a + b ));
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值