JAVA ---运算符与表达式

   运算符是指运算功能的符号。参与运算的数据称为操作数,运算符和操作数按照一定规则组成的式子称为表达式。

  根据操作数个数不同,可以将运算符分为三种:①单目运算符 (一元运算符)②双目运算符(二元运算符) ③三目运算符(三元运算符)

  根据运算符的性质或者用途,可以将Java基本运算符分为以下几类:

(1)算术运算符:

算术表达式是由算术运算符和操作数组成,用于完成基本的算术运算。算数表达式的操作数包括常量、变量等;

 

注意:

①在进行取余运算(%)或除运算(/)时,如果操作数数据类型是整数类型,只保留值的整数部分。

②单目运算符中自增或自减运算符位于操作数左侧与位于操作数右侧是不同的。其二者的区别为:当自增(++)或自减(--)运算符位于操作数左侧时,则在操作数增1或减1后使用操作数;当自增(++)或自减(--)运算符位于操作数右侧时,则先使用操作数,再使操作数增1或减1。
 

package com.sxt;
import java.util.Scanner;
public class Text {
    public static void main(String[] args )  {
        int a=1,a1=1;
        //++a:把a当成一个变量,先加后运算 a++:把a当成一个表达式,先运算后对a加
        int b=++a*2;//a先加1后再乘以2,将结果赋给b,最后a的值为2,b的值为4
        int b1=a1++*2;//al先乘2并赋给b1,然后a1自加1,最后a1的值为2,b1的值为2
        System.out.printf("a:%d b:%d a1:%d b1:%d ",a,b,a1,b1);
        }
    }
 

(2)关系运算符:

关系表达式是由关系运算符和操作数组成,用来比较两个操作数的大小,比较结果是一个布尔值(True或False)。操作数可以是算数表达式,布尔表达式,整数,浮点数和字符等。关系表达式的运算次序是先分别算出运算符两侧表达式的值,再将两者进行比较。

注意:字符型数据按其在Unicode标准字符集中的位置值进行比较。

 

(3)逻辑运算符: 

逻辑表达式由逻辑运算符和操作数组成。操作数为布尔值或者布尔表达式,运算结果是布尔值。  

注意:

  “&&”和“||”运算符又分别称“短路与”和“短路或”。如果“&&(短路与)”左边表达式的值为false,则整个逻辑表达式的值为false,编译器不会执行运算右边的表达式。同理如果“||(短路或)”左边表达式的值为true,则整个逻辑表达式的值为true,编译器不会执行运算右边的表达式。 

 

位运算符:>>,<<,>>>,&,|,^,~

 

举个例子: 

赋值运算符:=,+=,-=,*=,/=,%=等

赋值表达式是由赋值运算符和操作数组成, 赋值运算符用于将其右侧表达式的值赋给左侧变量。在Java中,'='不等于数学中的等号,等号应该是'=='。

 在赋值运算符两侧操作数的数据类型不一致时,如果左侧操作数的数据类型优先级高,则右侧操作数的数据类型将默认转换成与左侧操作数的数据类型相同的数据类型。否则将使用强制类型转换。

运算符的优先级: 

 

package com.sxt;
import java.util.Scanner;
public class Text {
    public static void main(String[] args )  {
   //提示用户输入加密的内容
        System.out.println("请输入加密的内容:");
        //Scanner类表示一个文本扫描器,他可以扫描从键盘输入的字符
        Scanner in=new Scanner(System.in);
      //方法nextLine()返回键盘上输入的一行字符串
        String secretStr=in.nextLine();
        //将字符串转为字符数组
        char []secretChars=secretStr.toCharArray();
        char secret='x';//字符变量用于保存加密密钥
        //加密运算:将要加密的字符与字符x进行按位异或运算得到密文
        System.out.print("密文:");
         for (int i=0;i<secretChars.length;i++)
         {
             secretChars[i]=(char)(secretChars[i]^secret);
             System.out.print(secretChars[i] );//显示密文
         }
        System.out.print("明文:");
         //解密运算:已加密的字符与字符x进行按位异或运算得到明文
        for (int i=0;i<secretChars.length;i++)
        {
            secretChars[i]=(char)(secretChars[i]^secret);
            System.out.print(secretChars[i] );//显示明文
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘 关

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值