Java学习第三天--------运算符与Scanner键盘录入

运算符

算数运算符

算数运算符包含 + - * / % .

+: 1.表示正数    2.表示+法运算   3.作为字符串的连接符存在

字符串和任意类型的数据进行+操作  最终得到的结果都是字符串本身

所有的算数运算符满足四则运算规则

先算乘除  后算加减  有括号  优先算括号

%  取余数

demo:
public class Test1 {
public static void main(String[] args) {
    String name = "机智的小军";
    int age = 24;
    String sex = "男";
    System.out.println("姓名:" + name +" 年龄:" + age + " 性别:" + sex );
}
}
运行结果: 姓名:机智的小军 年龄:24 性别:男

**自增和自减运算符**
++:自增   在原来数据的基础上  +1
1.单独使用的时候   没有任何区别  都是作为自增符号
2.当参与运算的时候:
    ++在前:先去自增  然后拿着自增后的结果值去参与运算
    ++在后:先去拿着原值参与运算  然后在自增

–:自减 在原来数据的基础上 -1

demo :
public  class test1 {

    public static void main(String[] args) {
        int a = 10;
        int b = 10;
        int c = 10;

            a = b++;//  a =10,b=11,c=10
            c = --a;//a=9,b=11,c=9
            b = ++a;//a=10,b=10,c=9
            a = c--;// a=9,b=10,c=8

        System.out.println("a:" + a);
        System.out.println("b:" + b);
        System.out.println("c:" + c);
      }
      
      运行结果:  a:9
      	  	   b :10
      		   c:8

赋值运算符

  • = , += ,-=, *= , /=, %= 这些都是赋值运算符

  • 其中=是基本的赋值运算符 其他都为扩展的赋值运算符

  • += 运算符:是将左右两边的值进行相加然后赋值给左边

  • 面试题:

  • short s=1;
    s = s+1; 
    
    short s=1;
    s+=1;
    //这几行代码会不会有问题,如果有问题,是哪里出现的问题
    //使用+=符号可以避免类型的强转
    
    
  • 上面的那两行代码会出错,s是shortl类型,在进行变量赋值运算的过程中,将s的类型转换为 int 类型,两边类型不匹配就会报错.

关系运算符

最终的结果值都是boolean类型的   要么是true  要么是false
将关系运算符连接起来的式子叫做关系表达式

==: 比较符号左右两边的值是否相同
!=:判断符号左右两边是否不同  如果不同 返回true  如果相同  返回false
< 和 <=: 如果左边比右边小  返回true  否则返回false
> 和 >=: 如果左边比右边大  返回true  否则返回false
class HelloWorld {
	public static void main(String[] arge){
		int a = 3;
		int b = 5;

		boolean bo = (a == b);//false

		boolean b1 = (a != b);//true

		//小于  小于等于
		boolean b2 = (a <= b);//true

		//大于  大于等于
		boolean b3 = (a >= b);//false

		System.out.println(bo);
		System.out.println(b1);
		System.out.println(b2);
		System.out.println(b3);

		//instanceof  判断你是否是我的一个实例
		String s = "hello";
		System.out.println(s instanceof String);//true
		System.out.println(a instanceof String);//false
	}

}

逻辑运算符

  • 左右两边连接boolean类型的值或者boolean类型的表达式(关系表达式)

  • &: 当符号左右两边都为true的时候 结果才为true 只要有一个false 那最终结果就是false

  • |: 当符号左右两边都为false的时候 结果才为false 只要有一个true 最终结果就是true

  • ^: 当符号左右两边一样的时候 结果为false

  • 当左右两边不一样的时候 最终结果为true

  • !: 取反 求相反数 只在右边跟上一个boolean类型的值

  • && :双与或者叫做短路与(and) 两边都是true,结果才为true

  • || :双或或者叫做短路或(or) 两边都为false,结果才为false

demo:

public class Test2 {
    public static void main(String[] args) {
        System.out.println(true & true);
        System.out.println(true & false);
        System.out.println(false & true);
        System.out.println(false & false);

        int a = 10;
        int b = 20 ;
        double c = 20.4;
        boolean bool = true;

        System.out.println(b > c || a > b++ );
        System.out.println("b = " + b);

    }
}
运算结果:  true 
		  false
		  false
		  false
		  false
		  b = 21
		  

位运算符

  • >>:右移符号

    • 将值转为二进制以后,开始移位

      • 如果高位为0,那么移位以后的空位也补0

      • 如果高位为1,那么移位以后的空位补1

  • <<:左移符号

    • 将值转为二进制以后,开始左移,空位补0
  • >>>:无符号右移

    • 将值转为二进制以后,开始移位,不管高位是0还是1,都补0

    总结:向右移几位,就是除以2的几次方

    ​ 向左移几位,就是乘以2的几次方

demo:
public class Test3 {
    public static void main(String[] args) {
        int a = -32;
        a =  a >>2 ;
        System.out.println(a);
           /* 1000 0000 0000 0000 0000 0000 0010 0000
            1111 1111 1111 1111 1111 1111 1101 1111
            1111 1111 1111 1111 1111 1111 1110 0000````移位前补码
            111111 1111 1111 1111 1111 1111 1110 00   移位后补码
            1111 1111 1111 1111 1111 1111 1111 0111   反码
            1000 0000 0000 0000 0000 0000 0000 1000  //-8  源码*/
    }
}

三目运算符

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

  • 如果关系表达式结果为true,那么就执行表达式1

  • 如果关系表达式结果为false,那么就执行表达式2

  • 表达式1和表达式2的最终结果是一个明确的答案值

demo:

     class HelloWorld {
      	public static void main(String[] arge){
      		//求出abc的最大值
      		int a = 10; 
      		int b = 15; 
      		int c = 16;
      
      		//int max = (a > b )? (a > c ? a  : c ): (b > c ? b : c);
      		int max = (a > b & a > c) ? a : (b > c ? b : c);
      
      		
      		System.out.println(max);
      		 
      	}
      
      }

键盘输入

​ 获取两个数的最大值

​ 想要使用键盘录入 必须得使用一个类:Scanner类

​ 1.创建键盘录入对象(Scanner)对象

​ 2.使用对象中的方法去接受键盘录入的数据

​ 3.将数据存储到变量中

​ 4.比较大小

注意点:
记得导入Scanner包 import java.util.Scanner;
1.创建键盘录入对象(Scanner)对象 缺什么 new什么
2.使用对象中的方法去接受键盘录入的数据

  • nextInt:  专门接受键盘录入的int类型的数据  如果不是int类型的数据  就会报错
    
  •   nextLine: 用于接收键盘录入的String类型的数据 
    
  •   next: 用于接收键盘录入的String类型的数据
    

demo:

import java.util.Scanner;

class Test5{
	public static void main(String[] arge){
		Scanner sc = new Scanner(System.in);  
		System.out.println("请输入第一个整数");
		int a = sc.nextInt();
		System.out.println("请输入第二个整数");
		int b = sc.nextInt();
		int max = a > b ? a : b;
		System.out.println("最大值为:" + max);
		 
	}

}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值