Java表达式+运算符+运算优先级+题目练习

1.表达式

以;结尾的一段代码,即为一个表达式

步骤 1 : 以;结尾的一段代码,即为一个表达式   
步骤 2 : ;    
步骤 1 : 以;结尾的一段代码,即为一个表达式 
表达式是由变量、操作符以及方法调用所构成的结构。如下所示:
都是表达式 


public class HelloWorld {
    public static void main(String[] args) {

        int sum=num1+num2;//这就是一个表达式,
        //+加号和=等号是运算符,num1和num2和sum是操作数。


        //每一句话都是一个表达式
        int i = 5;  
        System.out.println(5);

        //一个空;也是一个表达式
        ;
        ;
    }

2.运算符

Java 语言中的运算符除了具有优先级之外,还有一个结合性的特点。当一个表达式中出现多种运算符时,执行的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的约束,以便确定是自左向右进行运算还是自右向左进行运算。这些运算符按照操作数的数量可以分为单目运算符(只对一个操作数进行操作)、双目运算符(对两个操作数进行操作)和三目运算符。

1.赋值运算符  =

再java中等号(=)并不是“等于”的意思,而是位等号前的变量名“赋值”的意思

int  num=25;    //表示变量名num被赋值为25这个值。

2.一元运算符

运算符名称说明示例
+取正取正运算b=+a
-取负取负运算b=-a
!NOT,否进行NOT运算!a
~取补码表示去数值的补码~a
++自增一先取值再加一     或者先加一再取值a++ / ++a
--自减一先取值再减一     或者先减一再取值a--  /--a

 

package my_first_project;
public class Opp{
    public static void main(String[] args) {
        int i=0,j=0,a=1,b=1;
        int m=0,n=0,x=1,y=1;
        i=a++;                                           // a先赋值予给变量i,之后a再自加1
        System.out.println("i值为:"+i);                 // 输出i的值
        System.out.println("a赋值后再自加1的值为:"+a);   // 输出a的值
        j=b--;                                           // b先赋值予给变量j,之后b再自减1
        System.out.println("j值为:"+j);                 // 输出j的值
        System.out.println("b赋值后再自减1值为:"+b);     // 输出b的值
        m=++x;                                           // x值先自加1,再将x的值赋予给变量m
        System.out.println("m值为:"+m);                 // 输出m的值
        System.out.println("x加1后赋值为:"+x);           // 输出x的值
        n=--y;                                           // y值先自减1,再将y的值赋予给变量n
        System.out.println("n值为:"+n);                 // 输出n的值
        System.out.println("y减1后赋值值为:"+y);         // 输出y的值
 
   }
}
/**
*i值为:1
*a赋值后再自加1的值为:2
*j值为:1
*b赋值后再自减1值为:0
*m值为:2
*x加1后赋值为:2
*n值为:0
*y减1后赋值值为:0
*/

3.二元运算符

运算符名称说明示例
+求两数之和a+b
-求两数之差a-b
*求两数之积a*b
/求两数之商a/b
%取余求两数之余a%b

4.赋值运算符

运算符含义示例结果
=变量或者常量指定数值的符号int a=5;a=5
+=将该运算符左边的数值加上右边的数值,结果赋值给左边变量本身a+=2a=7
-=将该运算符左边的数值减去右边的数值,结果赋值给左边变量本身a-=2a=3
*=将该运算符左边的数值乘以右边的数值,结果赋值给左边变量本身a*=2a=10
/=将该运算符左边的数值整除右边的数值,结果赋值给左边变量本身a/=2a=2
%=将该运算符左边的数值除以右边的数值后取余,结果赋值给左边变量本身a%=2a=1

5.关系运算符

运算符含义 示例结果
>大于运算符只支持左右两边操作数是数值类型,如果前面变量的值大于后面变量的值,则返回truea 2>3false
>=大于等于运算符只支持左右两边操作数是数值类型,如果前面变量的值大于等于后面变量的值,则返回true3>=2true
<小于运算符只支持左右两边操作数是数值类型,如果前面变量的值小于后面变量的值,则返回true2<3true
<=小于等于运算符只支持左右两边操作数是数值类型,如果前面变量的值小于等于后面变量的值,则返回true3<=2false
==相等运算符

如果进行比较的两个错做书都是数值类型,无论他们呢的数据类型是否相同,只要他们值不相等,也都将返回false

如果两个操作数都是引用数据类型,只有当两个引用数据类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回false

java也支持两个boolean类型的值进行比较

2==3

true==true

97=='a'

5.0==5

false

true

true

true

!=不相等运算符

如果进行比较的的两个操作数都是数值类型,无论他们呢的数据类型是否相同,只要他们的值不相等,也都会返回true

如果两个操作数都是引用类型,只要当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回true

2!=3true

6.逻辑运算符

逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。

运算符用法含义说明示例结果
&&a&&b短路与ab全为true时,计算结果位true,否则为false2>1&&3<4true
||a||b短路或ab全为false时,计算结果位false,否则为false2<1||3>4false
!!a逻辑非

a为true时,值为false,a为false时,值为true

!(2>4)true
&a&b逻辑或ab全为false时,计算结果为false,否则为true1>2&3>5false
|a|b逻辑与ab全为false时,计算结果为false,否则为true1<2|3<5true
package my_first_project;
public class Opp{
    public static void main(String[] args) {
         int a=60;
         if(a<0||a>100)
             System.out.println("输入的成绩有误!");
         if(a>=0&&a<60)
             System.out.println("对不起,您考试没有及格!");
         if(a>=60&&a<=100)
             System.out.println("恭喜你,通过考试!");
   }
}
/**
*恭喜你,考试通过!
*
*
*
*/

条件运算符

Java中的条件运算符指的是三目运算符。
语法:

布尔表达式?表达式1:表达式2

实例:

int age = 16;
String ageStr = age > 18 ? "成年" : "未成年";
System.out.println(ageStr); // 未成年

位运算符

关于位运算符,不重点给大家介绍,因为在实际的开发中用的比较少,大家只需要记住,运算速度最快的就是位运算。

运算符的优先级

 在本图中运算符的优先级由高到低

 

练习

一、选择

  1. 设有如下变量,以下哪些语句编译不出错?   B

    A. c=c+i;  B. s+=i;  C. i+=s; D.c+=s;
    
  2. 若有 a=3,则执行下列语句为a的值为? a+=a*=a;     B

    A. 3  B. 12  C. 9 D.18
    
  3. 下面的运算符中,用于执行除法运算是哪个?   A

    A. /  B. \  C. % D.*
    
  4. 下面代码的输出结果为?   A

    A. x=11,y=11  B. x=10,y=11 C. x=10,y=12 D.x=12,y=10
    
  5. 执行下列程序段后,m,x,y的值分别是? B    

    A. true,2,4  B. false,3,3 C. true,3,3 D.false,2,4
    
  6. 下列程序段执行后,k的结果是?  B k = a!=b 返回的true  所以选择a+b    如果返回的是 false就选择a-b

    A. -2  B. 20 C. 11 D.9
    

二、编程

  1. 根据任务要求完成本题。
public class MathDemo {
    public static void main(String[] args) {
	//将变量m的初值赋值为10,变量n的初值赋值为5
    int m = 10, n = 5;
   
    //变量m的值加3,n的值加5
    m+=3;
    n+=5;
 
    //求m和n的平均值,并将结果存于变量p中
    double p;
    p=(m+n)/2.0;
   
    //求m的平方乘以n的平方,并将结果存于变量q中
    int q;
    q=(m*m)*(n*n);

    //将p和q的值打印输出
    System.out.println(p);  // 输出的值为11.5
    System.out.println(q);  // 输出的值为16900
}
  1. 定义三个整型变量a、b、c,他们的初始值分别为4、15、20。对表达式进行运算。
public class SuanShuDemo {
    public static void main(String[] args) {
		//声明三个整型变量a、b、c
		int a , b , c;

		//分别为a,b,c赋值为4,15,20
        a = 4; b = 15; c = 20;
		
		//计算(b/a)+c的值 ,并赋值给变量m
        double m;
        m = ((double)b / a ) + c;
		
		//计算(c%b)*a-c的值,并赋值给变量n
        int n;
        n = ( c % b ) * a - c;
		
		//输出m和n的值
        System.out.println(m);  // 输出的值为23.75
        System.out.println(n);  // 输出的值为0
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值