3运算符

70 阅读6分钟

image.png

如何获取一个四位数字的个位,十位,百位,千位上的数字分别是多少呢?
当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算
+的作用
        1.完成数学中的加法运算: +左右两边都是数字或者字符
        2.完成字符串的连接(拼接): 如果+的左右两边出现字符串
当连续进行“+”操作时,从左到右逐个执行。
 System.out.println(5 + "HelloWorld");//5HelloWorld
  System.out.println("5+5=" + 5 + 5);//5+5=55
   先计算表达式"5+5=" + 5:  +号左侧是字符串"5+5=",右侧是数字5,此处+号代表字符串的连接
    c--;//等价于: c = c - 1 
    --d;//等价于: d = d - 1
     ++/--写在前面【先++/--,再使用】: 
				先把变量值增加1(++)或者减少1(--),然后把变量增加1(++)或者减少1(--)的结果进行其它运算
				++/--写在后面【先使用,再++/--】:
				先使用变量增加1(++)或者减少1(--)之前的数据,然后变量的值再增加1(++)或者减少1(--)
++ 、-- 只能操作变量,不能操作常量的。
混合使用: ++/--和其它操作(赋值/打印输出)一起进行运算
++/--写在前面【先++/--,再使用】: 
先把变量值增加1(++)或者减少1(--),然后把变量增加1(++)或者减少1(--)的结果进行其它运算
++/--写在后面【先使用,再++/--】:
先使用变量增加1(++)或者减少1(--)之前的数据,然后变量的值再增加1(++)或者减少1(--)
````逻辑运算符也可以直接连接布尔类型的常量或者变量。
关系运算符--用来比较两个数据之间的大小关系,结果是boolean类型的数据
=: 表示的是赋值运算  ==: 表示的是判断是否相同  
^逻辑异或a  ^ b,a和b结果不同为true,相同为false
短路逻辑运算符
逻辑与&,无论左边真假,右边都要执行。
       短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。
逻辑或|,无论左边真假,右边都要执行。
 短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
 
 三元运算符 :数据类型 变量名称 = 布尔表达式1 ? 表达式2 : 表达式3;
?号前面的式子的结果必须是布尔类型
如果布尔表达式1的结果是false,取表达式3的结果赋值给左侧的变量
如果布尔表达式1的结果是true,取表达式2的结果赋值给左侧的变量
     /*

        int b = 1; 
            表达式(3 < 2) & (++b) > 1: 从左向右计算 
            对于&而言,虽然左侧为false,已经决定了最终的结果为false,
          
            表达式(3 > 2) || (++c) > 2: 从左向右计算
            先计算表达式3 > 2的结果:true
            对于||而言,左侧为true,已经决定了最终的结果为true,||的右侧不再计算,  所以c的值没有变化,还是1 
            表达式(3 > 2) | (++d) > 2: 从左向右计算
            先计算表达式3>2的结果:true
            对于|而言,虽然左侧为true,已经决定了最终的结果为true,
            但是仍然要计算|的右侧的表达式,导致d的值增加1,d变成2
         */
        
键盘录入
  java中数据类型分为基本类型(四类八种)和引用类型,对于引用类型的使用有固定的三个步骤
 键盘录入java.util.Scanner类也是一个引用类型,使用也有固定的三个步骤
 键盘录入Scanner类的使用:
	1.导包(找到我们要使用的东西) import 引入
        格式: import 包名.类名;
		Scanner类的导包: import java.util.Scanner; 导包的动作必须出现在类定义的上边
	2.创建对象
		格式: 类名 对象名 = new 类名(参数列表...);
		解释:
			(1)类名: class关键字后面指定的名字
			(2)对象名: 就是我们前面用的变量名,是一个标识符(符合命名规则)
            (3)=: 赋值的过程
            (4)new: 开辟内存空间创建对象的过程
            (5)参数列表: 根据需求指定
        创建Scanner类的对象:
			Scanner sc = new Scanner(System.in);
			注意: ()中的System.in目前是固定写法,就业班详细学习
                        上面这个格式里面,只有sc是变量名,可以变,其他的都不允许变。
	3.使用对象:
		sc.nextInt(): 获取键盘录入的整数数字(int范围)
        sc.nextDouble(): 获取键盘录入的小数数字(double范围)
 
  
接收数据
int i = sc.nextInt();
上面这个格式里面,只有i是变量名,可以变,其他的都不允许变。
%的作用:%获取到的是除法运算中的余数
	1.判断数字的奇偶性
		偶数(可以被2整除): 数字%2 的 结果是0
		奇数(不可以被2整除): 数字%2 的 结果不是0 ==> 结果是1
    2.判断一个数字能否被另外一个数字整除
    	结果为0: 说明可以被整除
    	结果不为0: 说明不可以被整除
 需求: 两个和尚,已知他们的身高分别为150cm、210cm,请用程序实现获取这两个和尚的最高身高。       
     public class OperatorTest02 {
    public static void main(String[] args) {
        //1.定义两个变量用于保存和尚的身高,单位为cm,这里仅仅体现数值即可。
        int h1 = 150;
        int h2 = 210;       
        //2.用三元运算符获取两个和尚的较高身高值,并用临时身高变量保存起来。
        int maxH = h1 > h2 ? h1 : h2;
        //3.输出结果
        System.out.println("两个和尚的最大身高:" + maxH);
    }
}
#### 键盘录入的练习
/*
    键盘录入练习
    需求:
        获取键盘录入的两个整数(int类型)数字,在控制台输出求和的结果。
    实现步骤:
        1.导包(找到我们要所以的键盘录入功能): import java.util.Scanner
        2.创建键盘录入Scanner类的对象sc: Scanner sc = new Scanner(System.in);
        3.获取键盘录入的两个int数字,分别保存到两个int变量a和b中
        4.计算变量a和b的和,保存到int变量sum中
        5.打印sum的值
    注意事项:
        不用自己手动导包,自己写import java.util.Scanner;
        (1)正确的写出Scanner类的前几个字母,根据提示,选择Scanner类,会自动导包        建议使用
        (2)正确的写出Scanner类的名字,如果没有提示: 快捷键alt + /
 */
 import java.util.Scanner;//导包
public class Demo10ScannerSum {
    public static void main(String[] args) {
        //1.导包(找到我们要所以的键盘录入功能): import java.util.Scanner
        //2.创建键盘录入Scanner类的对象sc: Scanner sc = new Scanner(System.in);
        Scanner sc = new Scanner(System.in);

        //3.获取键盘录入的两个int数字,分别保存到两个int变量a和b中
        System.out.println("请输入第一个整数数字: ");
        int a = sc.nextInt();

        System.out.println("请输入第二个整数数字: ");
        int b = sc.nextInt();

        //4.计算变量a和b的和,保存到int变量sum中
        int sum = a + b;

        //5.打印sum的值
        System.out.println(a + " 和 " + b + " 这两个数字的和: " + sum);
    }
}
system string 在lang包中,lang包不用导