首页 > 其他分享 >day05:运算符,Scanner

day05:运算符,Scanner

时间:2023-08-04 22:25:29浏览次数:43  
标签:Scanner int System day05 运算符 println out

day05:运算符,Scanner

一、运算符

  1. 赋值:=、+=、-=、*=、/=、%=

    • 简单赋值运算符:=

    • 扩展赋值运算符:+=、-=、*=、/=、%=

      • 注意:扩展赋值运算符自带强转功能

        int a = 5;
        a += 10;//相当于a=(int)(a+10)
        System.out.println(a);//15
        a *= 2;//相当于a=(int)(a*2)
        System.out.println(a);//30
        a /= 6;//相当于a=(int)(a/6)
        System.out.println(a);//5
        
        //小面试题
        short s = 5;
        //s = s+10;//编译错误,需要强制转换,改为:s=(short)(s+10)
        s +=10;//相当于s=(short)(s+10)
        
    • 字符串连接:+

      • 若两边为数字,则做加法运算

      • 若两边出现了字符串,则做字符串连接

        int age = 22;
        System.out.println("age=");//age=
        System.out.println(age);//22
        System.out.println("age="+age);//age=22
        System.out.println("我今年"+age+"岁了");//我今年22岁了
        
        String name = "WJH"
        System.out.println("大家好,我叫"+name);//大家好,我叫WJH
        System.out.println("大家好,我叫"+name+",今年"+age+"岁了");//大家好,我叫WJH,今年22岁了
        
      • 任何类型的数据与字符串连接,结果都会变为字符串型

        System.out.println(10+20+""+30); //30 30---------String
        System.out.println(""+10+20+30); //102030-------String
        System.out.println(10+20+30+""); //60-----------String
        
    • 位运算符

      对整型数字做运算,基于二进制来运算的

      & | ^ ~ << >> >>>

      1. &:按位与 1 true 0 false

        0 & 1 =0
        0 & 0 =0
        1 & 0 =0
        1 & 1 =1
        

        2&3
        	2:0010
        	3:0011
        	&:0010 = 2
        
      2. |:按位或

        0 | 1 = 1
        0 | 0 = 0
        1 | 1 = 1
        1 | 0 = 1
        

      1. ^按位亦或

        1 ^ 1 = 0
        0 ^ 0 = 0
        1 ^ 0 = 1
        0 ^ 1 = 1
        

      一个数异或另外一个数两次结果还是该数本身

      交换两个整数变量的值

      方式一:通过第三个变量

      int i =3;
      int j =4;
      int k =i;
      i = j;
      j = k;
      System.out.println(i+","+j)
      

      方式二:^来实现

      int i =3;
      int j =4;
      i = i ^ j;
      j = i ^ j;
      i = i ^ j;
      System.out.println(i+","+j)
      

      方式三:求和的方式(无需创建第三个变量)

      int i = 3;
      int j = 4;
      i = i + j; //i = 11
      j = i - j; //11-6=5
      i = i-j; // 11-5=6
      System.out.println(i+","+j)
      
      1. ~按位取反

        单目运算符

        ~0=1 ~1=0

        正数:原码=反码=补码

        负数:

        ​ 原码:十进制转二进制的方式最高位符号位

        ​ 反码:符号不变,其余各位取反

        ​ 补码:反码的基础+1

        ~i=-i-1

      2. <<

        直接将数字的二进制的形式向左移动相应的位数,左侧移出去的直接舍弃,右侧空出来的补0;符号位保持不变;

        a<<b:a*2^b

      3. >>

        直接将数字的二进制的形式向右移动相应的位数,右侧移出去的直接舍弃,左侧根据符号位来补;

        a>>b:a/(2^b)

      4. >>>

        直接将数字的二进制的形式向右移动相应的位数,右侧移出去的直接舍弃,左侧补0;

        对于正数和右移的结果一致;负数做无符号右移后效果一样

    • 三目运算符:boolean?数1:数2

      • 语法:

        • boolean?数1:数2
      • 执行过程

        • 整个条件运算是有值的,它的值要么是?号后的数1,要么是:后的数2

        • 计算boolean的值:

          • 若为true,则整个表达式的值为?后面的数1

          • 若为false,则整个表达式的值为:后面的数2

            int num = 5;
            int flag = num>0?1:-1;
            System.out.println(flag); //1
            
            int a=8,b=5;
            int max = a>b?a:b;
            System.out.println("max="+max); //max=8
            

            案例:判断数字是奇数还是偶数

            int num = 6;
            String str = num % 2 == ?奇数:偶数
            

二、Scanner

  1. 获取用户从键盘输入的数据

    1. 导包,指定Scanner类所属的包

      java.util.Scanner;

      语句:Import类的包路径

      位置:类的上面,包的下面

    2. 创建Scanner类的对象

      语句:Scanner scan = new Scanner(System.in);

      scan:对象名 变量名 引用名

    3. 调用对象的方法(功能)

      获取整型数字 nextInt()

      获取字符串 next()

      调用方法的格式:对象名.方法名

  2. next()和nextLine()的区别

    1. next()读取输入数据时,遇到空格等空白字符就默认本次数据输入结束
    2. nextLine()读取输入的数据时,遇到回车换行才认为是结束

标签:Scanner,int,System,day05,运算符,println,out
From: https://www.cnblogs.com/bestjh/p/17607183.html

相关文章

  • c++ 箭头运算符
    C++中箭头运算符的含义与用法讲解_C语言_脚本之家(jb51.net)C++中箭头运算符->,相当于把解引用和成员访问符两个操作符结合在一起,换句话说,p->func()和(*p).func()所表示的意思一样。例如:12345classA{public:func();}123456clas......
  • sonar scanner的使用
    1、下载安装包sonarscanner下载地址:https://docs.sonarsource.com/sonarqube/latest/analyzing-source-code/scanners/sonarscanner/下载Windows64-bit将其解压2、修改配置配置conf/sonar-scanner.properties文件#mustbeuniqueinagivenSonarQubeinstancesonar.projectKe......
  • 【js学习笔记二十二】...扩展运算符
     目录前言导语 代码部分 运行结果前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语歌谣歌谣......
  • 运算符
    1.算数运算符算数运算符分为:+,-,*,/,%,++,--System.out.println(5/2);//2,因为都是int类型,所以结果也是int类型,因此舍弃小数System.out.println(5/2.0);//2.5,int类型除double类型结果是double类型System.out.println(5%2);//1,商2余1System.out.println((3%7);//3,小的对大的......
  • C++逆向分析——运算符重载
    运算符重载现在有一个类,其中有一个函数用于比较2个类的成员大小:#include<stdio.h>classNumber{private:intx;inty;public:Number(intx,inty){this->x=x;this->y=y;}intMax(Number&n){returnthis->x>n.x&&this->y......
  • 运算符重载
    运算符重载:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型1.加号运算符重载 2.左移运算符重载一般输出时 cout<<p.m_A<<""<<p.m_B<<endl; 但是现在想用<<直接输出p,(直接输出类类型的p, cout<<p<<endl; )该怎么办呢?利用成员函数重载 左移运算符  ......
  • ...扩展运算符
     目录前言导语 代码部分 运行结果前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语歌谣歌谣......
  • [代码随想录]Day05-哈希表 part01
    题目:242.有效的字母异位词思路:很简单,就是看两个字符串每个字母出现的次数是不是相同的。可以用两个数组来比较,也可以用一个数组比较。代码:一个数组funcisAnagram(sstring,tstring)bool{isExist:=[26]int{}//26个字母for_,ch:=ranges{isE......
  • C++ | 运算符重载
    运算符重载在类中的函数进行重载(成员函数)运算符重载用于重新定义运算符的作用,使用函数名称operatorOP作为函数名,其中OP为具体的运算符(如operator+)classTime{Timeoperator+(constTime&t);};Timea,b;Timec=a+b;在成员函数中重载的运算符,如+-等,默认左边......
  • 可选链运算符(?.)的使用
    作用:读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。运算符的功能类似于 . 链式运算符,不同之处在于,在引用为空 (nill 或者 undefined)的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 un......