Day03

一、运算符

A、运算:对常量和变量进行操作的过程称为运算

B、运算符:对常量和变量进行操作的符号称为运算符

C、表达式:由运算符把常量和变量连接起来的式子

1、算数运算符

算数运算符符号:+、-、*、/、%、++、--

(1)+:

正号

加法

字符串连接

(2)-:

负数

减法

(3)*:

乘法

(4)/:

除法

(5)%:

取余数

(6)++、--

1、单独使用

​ 放在前面和后面效果一样

2、参与操作使用

​ 放在数据的前面,先数据变化,在参与运算。

​ 放在数据的后面,先参与运算,再数据变化。

2、赋值运算符

赋值运算符:=、+=、-=、*=、/=、%=、^=、&=、|=、<<=、>>=

(1)基本用法

int a = 10;

把10赋值给int类型的变量a

(2)复合用法

a += 10;//等价于 a = a + 10

-=、*=、/=、%=,用法类似。

把左边和右边的结果赋值给左边,并强制转换为左边的类型。

3、关系运算符

关系运算符:==、!=、>、>=、<、<=

注意:无论表达式简单还是复杂,结果肯定是boolean类型

4、逻辑运算符

逻辑运算符:&、|、^、!、&&、||

(1)单符号用法

①&(逻辑与):

有false则为false

②|(逻辑或):

有true则为true

③^(逻辑异或):

相同false,不同true

④!(逻辑非):

偶数个,值不变;奇数个,值相反

(2)双符号用法

⑤&&(短路与):

有false则为false,遇到false不执行

⑥||(短路或):

有true则为true,遇到true不执行

(3)&、|与&&、||的区别

&&具有短路效果,左边为false,右边不执行。

||具有短路效果,左边为true,右边不执行。

5、三目运算符

(1)格式:

​ 布尔表达式?表达式1:表达式2;

(2)执行流程:

​ A:计算关系表达式的值

​ B:如果是true,表达式1就是结果

​ 如果是false,表达式2就是结果

(3)个人补充:

​ 条件表达式的嵌套使用以及如何改写嵌套语句

6、字符串拼接符

方法:使用+号进行连接。

注意数字加数字认为为加号。

int a=1000;
System.out.println("恭喜您,中奖"+a+"万元!");

7、位运算符

位运算符: & 、 |、 ^ 、 <<、 >>、 >>>

(做位运算,需要把数据转换为二进制)

(1)&(按位与):

同位比较,两者为1,结果才为1

(2)|(按位或):

同位比较,两者有1,结果就为1

(3)^(按位异或):

同位比较,相同为0,不同为1

&、|、^:前后两侧都是数值,此符号为位运算符
&、|、^:前后两侧都是boolean,此符号为逻辑运算符

(4)<<(左移):

整体向左移动n位,就用n个0补位

(5)>>(带符号位右移):

整体向右移动n位,就用n个最高位补位

(6)>>>(无符号位右移):

整体向右移动n位,就用n个0补位

>>与 >>>的区别

如果是正数,没有区别

如果是负数,>>按照1补位,>>>按照0补位

二、表达式

(1)算数表达式

(2)关系表达式

(3)位运算表达式

三、运算符优先级

image

​ 使用方法:活用小括号提高优先级。

四、拓展(键盘录入Scanner的用法)

主要用于在窗口输入数据

(1)使用步骤:

1、导包:

import java.util.Scanner;

注意:在类class的上面。

2、创建对象:

Scanner sc = new Scanner(System.in);

3、调用方法获取数据(功能):

int num = sc.nextInt();

(2)注意事项:

1、使用Java提供的类需要在java文件中的第一行导入包

2、使用功能必须要先创建对象

3、创建对象 类型 引用 = 新建的对象

Scanner sc = new Scanner(System.in);

4、方法介绍:调用方法必须使用对象所对应的引用进行调用

int num1 = sc.nextInt();

在窗口输入一个整数类型数字并赋值给程序中的num变量

double num2 = sc.nextDouble();

在窗口输入一个浮点类型数字并赋值给程序中的num变量

String str =sc.next();

在窗口输入一个字符串并赋值给程序中的str变量

5.方法调用几次,就可以在窗口输入几次

(3)练习

A:获取两个数据中较大的值

//导入Scanner包
import java.util.Scanner;
    public class Test01{
        public static void main(String[] args){
            //创建对象
            Scanner sc = new Scanner(System.in);
            //提示输入数据
            System.out.println("请输入第一个数字:");
            //获取数据功能
            int num1 = sc.nextInt();
            System.out.println("请输入第二个数字:");
            int num2 = sc.nextInt();
            //三目运算比较大小
            int result = (num1>num2)?num1:num2;
            System.out.println("两个数字最大的是:"+result);
        }
    }

B:获取三个数据中较大的值

import java.util.Scanner;
	public class Test02{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入第一个数字:");
            int num1 = sc.nextInt();
            System.out.println("请输入第二个数字:");
            int num2 = sc.nextInt();
            System.out.println("请输入第三个数字:");
            int num3 = sc.nextInt();
            //两次三目运算比较大小
            int result = (num1>num2)?num1:num2;
            result =(result>num3)?result:num3;
            System.out.println("您输入的最大数为:"+result);
        }
    }

C:比较两个数是否相等

import java.util.Scanner;
	public class Test03{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入第一个数字:");
            int num1 = sc.nextInt();
            System.out.println("请输入第二个数字:");
            int num2 = sc.nextInt();
            boolean result = (num1 == num2)?true:false;
            if(result=true){
               System.out.println("您输入的数字相等。");
            }else{
                System.out.println("您输入的数字不相等。"); 
            }
        }
    }

D:获取三个数据,并按从小到大排列

import java.util.Scanner;

	public class Test04{
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入第一位数字:");
            int num1 = sc.nextInt();
            System.out.println("请输入第二位数字:");
            int num2 = sc.nextInt();
            System.out.println("请输入第三位数字:");
            int num3 = sc.nextInt();
            
            int result1 = (num1<num2)?num1:num2;
            int mix = (result1<num3)?result1:num3;

            int result2 = (num1>num2)?num1:num2;
            int max = (result2>num3)?result2:num3;

            int mid = num1+num2+num3-mix-max;
            
            System.out.println("您输入的数据从小到大排列为:"+mix+"、"+mid+"、"+max+".");
            
        }
    }
posted on 2021-10-06 10:33  飞翔的東君  阅读(33)  评论(0)    收藏  举报