Java自学详细学习笔记(二)----- Java的运算符

目录

Java中的运算符

一、运算符和表达式

1、什么是运算符

2、什么是表达式

3、算数运算符

4、算术运算符的练习题:

5、算术运算符中“+”的运算

1)、数字相加

2)、字符串的“+”操作(字符串只有加操作)

3)、字符的“+”操作

二、自减自增运算符

1、基本用法

2、自增

1)、a++:先用后加

2)、++a:先加后用

三、赋值运算符

赋值运算符的分类

四、关系运算符(比较运算符)

1、关系运算符的分类

2、注意事项:

3、关系运算符的练习题:

1)、观察以下代码,写出以下代码的输出结果

2)、请按以下要求写出代码。

五、逻辑运算符

1、逻辑运算符的分类

2、短路逻辑运算符

1)、短路逻辑运算符分类

2)、短路逻辑运算符的练习1:

3)、短路逻辑运算符的练习2:

​编辑

六、三元运算符

1、三元运算符的格式

2、三元运算符的练习:

1)、按要求写出对应代码1:

2)、按要求写代码2:

七、运算符的优先级

1、优先级分类

2、括号

八、原码、补码、反码

1、原码:

1)、原码:

2)、原码的范围:-127~127

2、反码:

1)、反码:

2)、计算规则:

3)、反码的范围:-127~127

3、补码:

1)、补码:

2)、计算规则:

3)、补码出现的目的:

4)、补码的范围:-128~127(-128没有原码和反码)


Java中的运算符

一、运算符和表达式

1、什么是运算符

运算符就是对字面量或者变量进行操作的符号。

2、什么是表达式

用运算符把字面量或者变量连接起来,符合Java语法的狮子就可以称为表达式。

不同运算符连接的表达式体现的式不同类型的表达式。

3、算数运算符

算术运算符主要包括+、-、*、/(除法)、%(取余数)

4、算术运算符的练习题:

要求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台。

代码部分:

import java.util.Scanner;

public class chaifennumber {
    public static void main(String[] args) {
        //进行键盘录入
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个三位数");
        int number = scanner.nextInt();
        //获取个位、十位、百位
        int gewei = number % 10;
        int shiwei = number / 10 % 10;
        int baiwei = number / 100 % 10 ;
        System.out.println(gewei);
        System.out.println(shiwei);
        System.out.println(baiwei);
    }
}

结果部分:

5、算术运算符中“+”的运算

1)、数字相加

数字进行运算的时候,数据类型不一样的不能够计算,需要转成一样的才能够计算。而类型转换分为两个部分,一个是隐式转换,另一个是

●隐式转换(自动类型提升):取值范围小的数值转换成取值范围大的数值,不需要程序员单独写代码进行转换(取值范围参照笔记1第四部分数据类型中的取值范围的大小关系)。

需要注意的是:byte、short、char这三种类型的数据在运算的时候,都会先提升为int,然后再进行计算。

●强制转换:数据比较大的时候有可能会导致数据发生错误。取值范围大的数值转换成取值范围小的数值。如果把一个取值范围大的数值,赋值给取值范围小的变量是不允许直接赋值,如果需要则需要程序员自己编写代码进行强制转换。

格式:目标数据类型  变量名=(目标数据类型)被强制转换的数据,想要转成谁就在小括号中写谁。

范例:将double转换成int

double a =12.3;

Int b =(int) a;

2)、字符串的“+”操作(字符串只有加操作)

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

3)、字符的“+”操作

当字符+字符或者字符+数字的时候,会把字符通过ASCII码表(美国信息交换标准码表)查询到相应的数字再进行计算。

二、自减自增运算符

1、基本用法

注意事项:++和--既可以放在变量的前边,也可以放在变量的后边。两者单独写一行没有区别,但是进行运算的时候写在前边或者后面是会有区别的。

2、自增

1)、a++:先用后加

先把变量a中的值拿出来用,用完了再进行自增

int a = 10;

int b = a++;  //把变量a中的值拿出来赋值给变量b,a再进行增加

所以最后变量b的值为10,变量a的值为11

2)、++a:先加后用

先将变量a自增,自增完后再拿出来使用

int a = 10;

int b = ++a;  //先将变量a自增,再赋值给变量b

所以最后变量a和变量b的值均为11

  1. 自增自减运算符练习

观察以下代码,请问x、y、z分别等于多少?

public class zizengyunsaun {
    public static void main(String[] args) {
        int x = 10;
        int y = x++;
        int z = ++x;
        System.out.println("x:"+ x);
        System.out.println("y:"+ y);
        System.out.println("z:"+ z);
    }
}

答:分别为12、10、12

代码结果实现:

三、赋值运算符

赋值运算符的分类

 

注意:+=、-=等的底层都隐藏了一个强制类型转换

四、关系运算符(比较运算符)

1、关系运算符的分类

2、注意事项:

关系运算符的结果都是布尔类型,并且千万不要将“==”,误写成“=”。

3、关系运算符的练习题:

1)、观察以下代码,写出以下代码的输出结果

public class compare {
    public static void main(String[] args) {
        int a = 10;
        int b = 30;
        int y = 10;
        System.out.println(a==b);
        System.out.println(a==y);
    }
}

结果:false  true

代码结果展示:

2)、请按以下要求写出代码。

要求:您和您的对象再餐厅约会。键盘录入两个整数,表示你和你约会对象衣服的时髦程度。(手动录入0~10之间的整数),如果你的时髦程度大于你对象的时髦程度,相亲就成功,输出true,相反就输出false。

代码:

import java.util.Scanner;

public class compare {
    public static void main(String[] args) {
       //1、进行键盘录入
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入自己衣服的时髦程度:");
        int myFashion = scanner.nextInt();
        System.out.println("请输入对方的衣服的时髦程度:");
        int duiFashion = scanner.nextInt();

        //2、将自己的时髦程度与对方的时髦程度进行对比
        boolean result = myFashion > duiFashion;

        //3、将结果进行输出
        System.out.println(result);
    }
}

结果:

五、逻辑运算符

1、逻辑运算符的分类

2、短路逻辑运算符

可以提高代码的运行效率。

1)、短路逻辑运算符分类

短路逻辑运算符分为两类:一个是&&(表示且),一类是||(表示或者)

2)、短路逻辑运算符的练习1:

观察以下代码,判断result、a和b的值分别为多少

public class compare {
    public static void main(String[] args) {
       //&&两边为真结果为真,||一边为真结果为真
        int a = 10;
        int b = 10;
        boolean result = ++a <5 && ++b <5;
        System.out.println(result);
        System.out.println(a);
        System.out.println(b);
    }
}

答:false、11、10

原因解答:b为什么是10,而不是11

因为&&具有短路效果。&&表示两边结果都为真时结果为真,当一方条件不满足的时候,就不用判断另一方。所以当代码检查a自增后的结果不小于5后,就不用再对b进行自增,所以b是10,而不是11。

代码结果实现:

3)、短路逻辑运算符的练习2:

根据以下要求写出对应的代码。

要求:键盘录入两个整数,当这两个整数其中有一个数为6或者两个数相加的数是6的倍数的时候输出true,相反输出false。

代码:

import java.util.Scanner;

public class compare {
    public static void main(String[] args) {
        //1、键盘录入两个整数
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int first = scanner.nextInt();
        System.out.println("请输入第二个整数:");
        int scound = scanner.nextInt();

        //2、判断
        int sum = first+scound;
        boolean result = first == 6 || scound ==6 || sum %6==0;
        System.out.println(result);
    }
}

代码结果展示:

六、三元运算符

1、三元运算符的格式

格式:关系表达式?表达式1:表达式2;

格式解说:当关系表达式为真就会执行表达式1,当关系表达式为假,就会执行表达式2。

范例:求两个数的较大值。a > b ? a : b;

2、三元运算符的练习:

1)、按要求写出对应代码1:

要求:使用三元运算符获取两个数的较大值。

代码:

public class compare {
    public static void main(String[] args) {
       //1、定义两个整数
        int number1 = 20;
        int number2 = 30;

        //2、开始使用三元运算符
        int max = number1 > number2 ? number1 :number2 ;
        System.out.println(max);
    }
}

代码结果展示:

2)、按要求写代码2:

要求:动物园里有两只老虎,体重分别为通过键盘录入获得,请用程序实现判断两只老鼠的体重是否相同。(结果输出不能是布尔类型,输出结果必须是相同或者是不同。)

代码:

import java.util.Scanner;

public class compare {
    public static void main(String[] args) {

        //1、进行键盘录入
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一只老虎的体重:");
        int weight1 = scanner.nextInt();
        System.out.println("请输入第二只老虎的体重:");
        int weight2 = scanner.nextInt();


         //2、进行比较
        String result = weight1 == weight2 ? "相同" : "不同";
        System.out.println(result);
    }
}

代码结果展示:

3)、按要求写代码3:

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

代码:

public class compare {
    public static void main(String[] args) {
        int heshang1 = 150 ;
        int heshang2 = 210 ;
        int heshang3 = 165 ;
        int height = heshang1 > heshang2 ? heshang1 : heshang2 ;
        int max = height > heshang3 ? height :heshang3 ;
        System.out.println(max);
    }
}

代码结果实现:

七、运算符的优先级

1、优先级分类

2、括号

小括号中的关系运算符优先于一切

八、原码、补码、反码

1、原码:

1)、原码:

十进制数据的二进制表现形式,最左边为符号位,0为正,1为负,如01111111就是+127,11111111就是-127。利用原码对正数进行计算是不会有问题的。

2)、原码的范围:-127~127

2、反码:

1)、反码:

为了解决原码不能计算负数的问题而出现的。

2)、计算规则:

正数的反码不变,负数的反码再原码的基础上,符号位不变。数值取反,0变1,1变0。

3)、反码的范围:-127~127

3、补码:

1)、补码:

计算机的存储和计算都是以反码的形式进行的。

2)、计算规则:

正数的补码不变,复数的补码在反码的基础上+1。正数的原码、补码、反码都是一样的。

3)、补码出现的目的:

用反码进行计算时,反码的0有两种形式一个是八个0,一个是八个1,如果用反码进行计算,跨0时就会跨两次,计算结果就会跟实际结果有一个1的误差。而补码就能完美解决负数计算的问题。

4)、补码的范围:-128~127(-128没有原码和反码)

猜你喜欢

转载自blog.csdn.net/yh1009/article/details/132226754