Java程序设计: 第三章Java运算符、表达式

一、内容概述

1、Java运算符的使用

2、表达式的应用

二、Java的运算符

1、基础运算符

分割符:,,;,[],()

算术运算符:  +,―,*,/,%,++,――

关系运算符:  >,<,>=,<=,==,!=

布尔逻辑运算符:  !,& , | , ^ , &&,||

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

赋值运算符:  =  扩展赋值运算符:+=,―=,*=,/=

字符串连接运算符: +

造型操作符:()

两数相除,如果接收的值是整型,则会自动将小数点去掉。(0.5à0)

% :取模,余数

++ :自增,在原有值的基础上加1

 -- : 自减,在原有值的基础上减1

逻辑运算符返回的都是boolean值(布尔数学体系的)

2、关系运算符

用==号来判断两个值是否相等

用!=来判断是否不等,

用>、<来判断大于、小于

用>=、<=来判断大于等于小于等于

3、逻辑运算符

!-- 逻辑非       &  -- 逻辑与        |  -- 逻辑或

^  -- 逻辑异或     && -- 短路与         || -- 短路或

4、短路逻辑运算符

&&: 第一个操作数为假时则不判断第二个操作数

||: 第一个操作数为真时则不判断第二个操作数

5、赋值运算符

赋值运算符“=”是最常用的一种运算符。它将等号右边的表达式的值赋给左边的变量。

当”=”两侧的数据类型不一致时,可以用默认类型转换或强制类型转换原则进行处理:

long l=100; int i=(int)l ;

特例:可以将整型常量直接赋值给byte、short、char等类型变量,而不用进行强制类型转换,只要不超出其表数范围。

byte b=12; //合法

byte b=129; //非法

5、字符串连接运算符

“+”除用于算术加法运算外,还可用于对字符串进行连接操作。

int i=300+5;

String s=“hello,”+”world!”;

“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串后再进行连接。

int i=300+5;

String s=“hello,”+i+”号”;

System.out.println(s);//输出:hello,305号

6、位运算符

位运算符功能:

(1)~ -- 取反(2)& -- 按位与(3)|  -- 按位或  (4)^  -- 按位异或

位运算符功能说明:

7、移位运算符

>>:右移运算符,将运算的二进制码整体左移指定位数,右移之后的空位使用符号位来补充,如果是正数用0填充,如果是负数使用1来填充

<<:左移运算符,将运算的二进制码整体左移指定位数,左移之后的空位使用0来补充

>>>:无符号右移位运算符

a>>>b将将二进制形式的a逐位右移b位, 空出的位补0

移位运算符性质

适用数据类型:byte、short、char、int、long,对低于int型的操作数将先自动转换为int型再移位

对于int型整数移位a>>b,系统先将b对32取模,得到的结果才是真正移位的位数

对于long型整数移位时a>>b ,则是先将移位位数b对64取模

三、表达式

表达式是运算符和操作数的结合,它是任何一门编程语言的关键组成部分

所有的数学运算都认为是从左到右结合的,在Java中,大部分运算也是从左到右结合的,只有单目运算符、赋值运算符和条件运算符例外

乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作符可以互换位置而不会影响到结果

    运算符优先级如图:

Java运算符、表达式案例

1、基础算术运算的案例

一、教学实验
除法和求余的案例:
public class Test {
    /**
        基础算数运算符
     */
  public static void main(String[] args) {
    //1、除法
        int i=10;
        int j=3;
        System.out.println(i/j);
    //求余
        System.out.println(i%j);
 
  }
 
}
 
 
二、练习实验
1、书写并运行下列程序。
  public static void main(String[] args) {
    //1、除法
        int i=11;
        int j=3;
        System.out.println(i/j);
    //求余
        System.out.println(i%j);
        System.out.println(8%2);
  }
 
 2、书写并运行下列程序。
 
 public static void main(String[] args) {
            int num = 9999;
     int gewei = num % 10; // 分解获得个位数
     int shiwei = num / 10 % 10; // 分解获得十位数
     int baiwei = num / 100 % 10; // 分解获得百位数
     int qianwei = num / 1000; // 分解获得千位数
     System.out.println("数字:  " + num);
     System.out.println("千位数是:  " + qianwei);
     System.out.println("百位数是:  " + baiwei);
     System.out.println("十位数是:  " + shiwei);
     System.out.println("个位数是:  " + gewei);
      }
 
 

2、自增和自减的案例

一、教学案例

(1)程序片段1

      public static void main(String[] args)

      {        

           int i=0;

           System.out.println(i++);

           System.out.println(i++);

           System.out.println(i++);

      }

(2)程序片段2

      public static void main(String[] args)

      {        

           int i=0;

           System.out.println(++i);

           System.out.println(++i);

           System.out.println(++i);

      }

(3)程序片段3

      public static void main(String[] args)

      {        

           int i=0;

           System.out.println(i--);

           System.out.println(i--);

           System.out.println(i--);

      }

(4)程序片段4

      public static void main(String[] args)

      {        

           int i=0;

           System.out.println(--i);

           System.out.println(--i);

           System.out.println(--i);

      }

二、练习实验

1、上机书写并运行下列程序:

(1)程序片段1

      public static void main(String[] args)

      {        

           int i=0;

           System.out.println(i++);

           System.out.println(i++);

           System.out.println(i++);

      }

(2)程序片段2

      public static void main(String[] args)

      {        

           int i=0;

           System.out.println(++i);

           System.out.println(++i);

           System.out.println(++i);

      }

(3)程序片段3

      public static void main(String[] args)

      {        

           int i=0;

           System.out.println(i--);

           System.out.println(i--);

           System.out.println(i--);

      }

(4)程序片段4

      public static void main(String[] args)

      {        

           int i=0;

           System.out.println(--i);

           System.out.println(--i);

           System.out.println(--i);

      }

 5)程序片段5

    public static void main(String[] args)

      {        

           int i=0;

           int sum=100 + (i++)+(++i)+(i--)+(--i);

           System.out.println(sum);

      }

2、拓展练习

   

 (1)上机书写并运行下列程序:

      public static void main(String[] args)

      {        

           int i=0;

           int sum=(i++)+(++i)+(i--)+(--i);

           System.out.println(sum);

      }

(2)上机有如下程序段:问输出的结果sum1为多少,sum2为到少?

      public static void main(String[] args)

      {        

             int i=0,sum1=0,sum2=0;

             sum1=(i++)+(++i)+(--i)+(i--)+(i++)+(--i);

             sum2=(++i)+(i++)+(i--)+(--i)+(++i)+(i--);

             System.out.println(sum1);

             System.out.println(sum2);

      }

 (3)上机书写并运行下列程序:

       public static void main(String args[])

      {

            int i=8;

            int j=11;

            if( i++>8 || --i>8 || i++>8 || j-->11 || ++j>=11 || --i==9)

            {

       System.out.println("条件满足!");

                 System.out.println("i="+i);

                 System.out.println("j="+j);

            }

            

      }

(4)上机编程:

    设int x=15,int y=27,int z=0;则z=x+++--y运算后,求:x=?,y=?,z=?

(5)上机编程:

    设int x=3,int y=9,int z=0; 则表达式z=--x*y++-13运算后,x=?,y=?,z=?

3、赋值运算的案例

一、教学实验

1、赋值运算的例子:

public class Test {

    /**

        赋值运算

     */

  public static void main(String[] args) {

       //1、示例-1

       int i = 0;

       i = i + 1;

       System.out.println("i = " + i);

       //2、示例-2

       short s = 10;

       s += 1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数字化与智能化

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

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

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

打赏作者

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

抵扣说明:

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

余额充值