当前位置: 首页 > article >正文

JAVASE(二)

目录

一、运算符

1.算数运算符

2.比较运算符

3.赋值运算符

4.逻辑运算符

5.条件运算符(三元运算符)

6.位运算符

二、控制台输入


一、运算符

1.算数运算符

算数运算符包括+(加)、-(减)、*(乘)、/(除)、%(取余)、++(自增)、--(自减)。

(1)其中+不仅可以用来作数值运算,还可以用来连接字符串。如:

        int a=10;
        char c= 'a';

 //  数值运算
        System.out.println(a+c);

    //  字符串连接
        String b="aba";
        System.out.println(b+c);
        System.out.println(b+a);

运行结果如下:

 

(2)自增和自减的细节问题在之前有做总结,链接如下:

关于自增和自减的一些细节问题-CSDN博客 

2.比较运算符

比较运算符包括:>(大于)、<(小于)、==(等于)、!=(不等于)、>=(大于等于)、<=(小于等于)。

(1)比较运算符的结果都为布尔型即true或false。

(2)注意区分==和=,==是比较运算符,=是赋值运算符。

(3)==和 != 不仅可以用于基本数据类的比较,还可以用于引用类型的比较。

//    基本类型的比较
        byte  a =1;
        int    b=1;
        System.out.println(a==b);
//    引用类型的比较
        String c="a1a";
        String d="a1a";
        System.out.println(c!=d);

运行结果:

 

3.赋值运算符

赋值运算符包括:=、+=、-=、*=、/=、%=。

(1)=即把符号右边的值赋给左边,需要注意的是右边的数据类型是否与左边所声明的类型相一致。

(2)除了=之外,其余的运算符在运算时会有隐式的数据类型强制转换。

首先按照运算规则来看,+=实际上就是将左边的变量值与右边值相加再赋给左边的变量。

如:

        int c = 2;
        //表达式1
        c = c + 2;
        System.out.println(c);
        
        int a = 2;
        //表达式2
        a += 2;
        System.out.println(a);

最终运算结果a和c的值都为4。由此看似c+=2和c=c+2毫无区别。但如果是以下情况:

        int  a=3;
        float b=1;
        //表达式1
        a+=b;
        System.out.println(a);  
        
        
        int  c=3;
        float d=1;
        //表达式2
        c=c+d;
        System.out.println(c);
        

表达式2:c=c+d;会报错,原因是c+d的结果是float类型,而c是int类型,需要强制转换。但是a+=b却能执行。实际上此时的a+=b相当于a=(int)(a+b)。

根据之前的总结,混合运算时会先将所有数据转换为容量最大的类型。由于a是int型,b是float型,所以a+b时会先将a转换为float类型,最终的结果也是float类型。此时就不能直接赋给a,除非进行强制转换才可以。而直接使用赋值运算符则隐式地包含了这个过程。

4.逻辑运算符

逻辑运算符包括&(与)、|(或)、!(非)、^(异或)、&&(短路与)、||(短路或)。

(1)逻辑运算符的两边都是布尔型,运算结果也是布尔型。

(2)&和&&的区别在于:&的左边无论真假,其右边都会进行运算。而&&的左边如果是假,则右边不会进行运算。| 和 || 的区别同理。

如:

        int a=2;
        System.out.println(a>3&(++a)>3);
        System.out.println(a==3&(++a)>3);
        System.out.println(a>4&&(++a)>4);
        System.out.println(a);

运行第一个输出,明显为false;此时a为3。然后运行第二个输出,结果应为true,此时a为4。

运行第三个输出时,因为a>4为假,所以不会运行后面的表达式,输出结果为false;此时a仍为4,最后输出a。

运行结果如下:

(3)&、|、^ 除了可以做逻辑运算符之外,还可以做位运算符。具体当做哪种运算符使用,要看符号两边是否都为布尔型。 

5.条件运算符(三元运算符)

格式如下:

(条件表达式)?表达式1:表达式2

如果条件表达式为真,则执行表达式1,如果为假,则执行表达式2。

6.位运算符

位运算符包括:<<(左移)、>>(右移)、>>>(无符号右移)、~(取反)、&(与)、|(或)、^(异或)。

(1)位运算符即对二进制比特位的运算,比如当2参与位运算的时候,会先将2变为二进制的形式,再参与运算。

(2)>>和>>>区别在于:>>运算后,二进制的符号位保持不变。而>>>运算后,二进制的符号位固定为0。

如:

        byte a=-6;
        System.out.println(a>>1);
        System.out.println(a>>>1);

运行结果如下:

 

(3)&、|、^、~ 都是先换成二进制,再对比特位进行相应操作。比如2&3,就是先将2和3都变成二进制形式,然后两个二进制对应的每一位进行相与。其次,两个变量交换值时还可以用^运算实现。

二、控制台输入

为了用户和程序之间可以实现交互式数据输入,java提供了一个Scanner类,该类可以让用户在控制台中输入,并将数据读取到程序中。(与C语言的Scanf函数功能类似)。

步骤如下:

1.创建一个Scanner对象

Scanner 变量名 =new Scanner(System.in);

2.给予提示(该步骤可跳过)

System.out.println("想要提示的内容");

3.调用对象的方法

根据想要输入的数据类型选择对应的方法。如:字符串类型:  变量名.next();   

整数类型:变量名.nextInt();

当程序执行到该方法时便会阻塞,等待用户输入数据并按下回车键结束输入后,该对象便会读取输入的数据到程序中。


http://www.kler.cn/a/577498.html

相关文章:

  • 字符串中的数字之和
  • 「DataX」数据迁移-IDEA运行DataX方法总结
  • C++ string类(前)
  • AI数字人| Fay开源项目、UE5数字人、本地大模型
  • Visual Studio工具
  • Uniapp中图片预览,并且进行长按图片保存
  • 防火墙旁挂组网双机热备负载均衡
  • GStreamer —— 2.5、Windows下Qt加载GStreamer库后运行 - “教程5:GUI 工具包集成(gtk)“(附:完整源码)
  • Scala(Array,List,Set,Map,Tuple,字符串 使用的简单介绍)
  • 1. 树莓派上配置机器人环境(具身智能机器人套件)
  • 每日一题-哞叫题(蓝桥杯)【模拟】
  • 国家二级运动员证书有什么用·棒球1号位
  • DeepSeek开源Day4:DualPipeEPLB技术详解
  • STM32驱动OLED屏幕全解析:从原理到温度显示实战(上) | 零基础入门STM32第五十三步
  • React Native v0.78 更新
  • 国产替代新篇章:领麦微红外测温传感器赋能3D打印精准制造
  • Linux安装Anaconda和Jupyter
  • 求最大公约数【C/C++】
  • Ubuntu 下 nginx-1.24.0 源码分析 - conf_ctx
  • 机器学习数学基础:39.样本和隐含和残差协方差矩阵