阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

运算符与表达式

114次阅读
没有评论

共计 4888 个字符,预计需要花费 13 分钟才能阅读完成。

1、运算符与表达式

** 运算符:** 是用来计算数据的指令。数据可以是常量,也可以是变量。被运算符操作的数成为操作数。

** 表达式:** 通俗的说,即通过使用运算符将操作数联系起来的式子。

例如:

3+2,使用算数运算符将操作数联系起来,这种情况,我们称为算数表达式。

3>2,使用比较运算符(也称为条件运算符)将操作数联系起来,这种情况,我们称为条件表达式。

2、算术运算符

将操作数参与数学计算,就是我们的算术运算

运算符与表达式

2.1、基础运算

完成基础的加、减、乘、除、取余数的运算

/*
 基础运算:*/
public class ExprDemo01{public static void main(String args[]){
    int a=12,b=3;
 		// 基本的加、减、乘、除、取余数的运算
    System.out.println("a+b="+(a+b));
    System.out.println("a-b="+(a-b));
    System.out.println("a*b="+(a*b));
    System.out.println("a/b="+(a/b));
    System.out.println("a%b="+(a%b));
  }
}

运行结果:

运算符与表达式

2.2、特殊运算

2.2.1、加法与减法特殊运算

(1)加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。

(2)减法运算符在使用的时候,可以表示负数。

/*
 加法与减法特殊运算:*/
public class ExprDemo02{public static void main(String args[]){
    int a=12,b=3;
 		// 加法运算符在这里表示连接字符串
    System.out.println("a="+a);
    // 减法运算符在这里表示的是负号
    System.out.println("-a+b="+(-a+b));
  }
}

运行结果:

运算符与表达式

2.2.2、除法与取余数特殊运算

(1)除法“/”当两边为整数时,取整数部分,舍余数。当两边为浮点型时,按正常规则相除。

/*
 除法与取余数特殊运算:*/
public class ExprDemo03{public static void main(String args[]){
    int a=12,b=3;
    double c=12.4,d=3.4;
    // 除法“/”当两边为整数时,取整数部分,舍余数。当两边为浮点型时,按正常规则相除。System.out.println("a/b="+a/b);
    System.out.println("c/d="+c/d);
  }
}

运行结果:

运算符与表达式

(2)“%”为整除取余符号,取余结果的符号与被取余数的符号相同。小数取余没有意义。得到的是两个相除数据的余数。用处: 判断两个数据是否整除。

// 改变 b 的值
b=5;
//“%”为整除取余符号,取余结果的符号与被取余数的符号相同
System.out.println("a%b="+a%b);
System.out.println("-a%b="+(-a%b));
// 小数取余没有意义
System.out.println("c%d="+c%d);
// 判断两个数据是否整除, 如果为 0 表示整除
System.out.println("a%b="+a%b);

运行结果:

运算符与表达式

(3)整数做被除数,0 不能做除数,否则报错。

// 改变 b 的值
b=0;
// 0 不能做除数,否则报错
System.out.println("a/b="+(a/b));

运行结果:

运算符与表达式

2.3、自增、自减

2.3.1、单独使用

前置与后置效果相同,均为直接 + 1 或 -1

/*
自增、自减 ---- 单独运算:*/
public class ExprDemo04{public static void main(String args[]){
 		//++ 运算,单独使用都一样
    int a=12;
    a++;
    System.out.println("a++="+a);
    a=12;
    ++a;
    System.out.println("++a="+a);
    //-- 运算,单独使用都一样
    a=12;   
    a--;
    System.out.println("a--="+a);
    a=12;
    --a;
    System.out.println("--a="+a);
  }
}

运行结果:

运算符与表达式

2.3.2、混合使用

自增():将变量的值加 1,分前缀式(如 i)和后缀式(如 i ++)。前缀式是先加 1 再使用;后缀式是先使用再加 1。

自减(–):将变量的值减 1,分前缀式(如–i)和后缀式(如 i–)。前缀式是先减 1 再使用;后缀式是先使用再减 1。

/*
自增、自减 ---- 混合运算:*/
public class ExprDemo05{public static void main(String args[]){
 		// 前缀式:先 +1,在使用
    int a=12;
    System.out.println("++a="+(++a));
    // 后缀式:先使用,后 +1
    a=12;
    System.out.println("a++="+(a++));
   
    // 前缀式:先 -1,在使用
    a=12;
    System.out.println("--a="+(--a));
    // 后缀式:先使用,后 -1
    a=12;
    System.out.println("a--="+(a--));
  }
}

2.3.3、自增与自减运算符还遵循以下规律:

(1)可以用于整数类型 byte、short、int、long,浮点类型 float、double,以及字符串类型 char。

(2)在 Java5.0 及以上版本中,它们可以用于基本类型对应的包装类 Byte、Short、Integer、Long、Float、Double、Character。

(3)它们的运算结果的类型与被运算的变量的类型相同。

3、赋值运算符

为变量完成初始化及变量的值的改变的运算符

运算符与表达式

3.1、案例:

/*
	赋值运算符:
	=,+=,-=,*=,/=,%=
	运算符的运算规则:
	先将运算符两边进行 +,-,*,/,% 运算, 在把结果赋值给左边的变量
	注意事项: 运算符左边必须是一个变量
	特点: 隐含一个强制类型转换
	*/
public class ExprDemo06{public static void main(String[] args){
			int a = 10;
			a += 20;// 相当于 a = a + 20;
			System.out.println("a =" + a);

			//5 += 6;// 错误: 意外的类型, 这里 5 的位置需要一个变量

			byte b = 10;
			b += 100;//+= 隐含了一个强制类型转换 相当于 b = (byte)(b + 100);
			System.out.println("b =" + b);
		}
}

运行结果:

运算符与表达式

4、比较运算符

又叫关系运算符,即判断两个操作数的大小关系及是否相等关系,比较运算符的返回一定为布尔值,也就是要么是 true,要么是 false。

运算符与表达式

4.1、案例:

public class ExprDemo07{public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 10;
        System.out.println(a == b);
        System.out.println(a == c);
        System.out.println("-----------------");
        System.out.println(a != b);
        System.out.println(a != c);
        System.out.println("-----------------");
        System.out.println(a > b);
        System.out.println(a > c);
        System.out.println("-----------------");
        System.out.println(a >= b);
        System.out.println(a >= c);
        System.out.println("-----------------");
        int x = 3;
        int y = 4;
        //System.out.println(x == y);
        //System.out.println(x = y);// 把 y 赋值给 x,把 x 的值输出
        boolean bb = (x == y);
  			System.out.println("bb="+bb);
        // 报错
        //boolean cc = (x = y);
        int cc = (x = y);
        System.out.println("cc="+cc);
     }
}

运行结果:

运算符与表达式

5、逻辑运算符

用于计算两个布尔值经过指定逻辑后的运算结果,结果同样是一个布尔值.

逻辑运算符用于连接布尔型表达式,在 Java 中不可以写成 3 <x<6,应该写成 x >3 && x<6。

运算符与表达式

5.1、案例:

public class ExprDemo08{public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        System.out.println((a > b) && (a > c));// false && false
        System.out.println((a < b) && (a > c));// true && false
        System.out.println((a > b) && (a < c));// false && true
        System.out.println((a < b) && (a < c));// true && true
        System.out.println("---------------");
        System.out.println((a > b) || (a > c));// false || false
        System.out.println((a < b) || (a > c));// true || false
        System.out.println((a > b) || (a < c));// false || true
        System.out.println((a< b) || (a < c));// true || true
        System.out.println("---------------");
        int x = 3;
        int y = 4;
        System.out.println((x++ > 4) && (y++ > 5)); // false && false
        System.out.println("x:" + x);
        System.out.println("y:" + y);
        System.out.println("---------------");
        System.out.println((a > b));// false
        System.out.println(!(a > b));// !false
        System.out.println(!!(a > b));// !!false
    }
}

运行结果:

运算符与表达式

6、三元运算符

接下来我们要学习的三元运算符与之前的运算符不同。之前学习的均为一元或者二元运算符。元即参与运算的数据。

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

三元运算符运算规则:

先判断条件表达式的值,若为 true,运算结果为表达式 1;若为 false,运算结果为表达式 2。

三元运算符,最终一定会产生一个结果值,这个值必须被使用起来。要么被运算符使用,要么被打印

6.1、案例:

/*
	三元运算符: 求两个数的最大值, 判断两个数是否相等
 
	格式:
	(条件表达式) ? 表达式 1 : 表达式 2;
 
	执行流程:
	首先判断条件表达式是否成立
	true: 表达式 1 作为 3 元运算符的结果
	false: 表达式 2 作为 3 元运算符的结果
 
	注意:三元运算符,最终一定会产生一个结果值,这个值必须被使用起来。要么被运算符使用,要么被打印
	*/
	public class ExprDemo09{public static void main(String[] args){
        int a = 10;
        int b = 20;
        int max = (a > b) ? 10 : 20;
        System.out.println("max =" + max);

        int c = 15;
        int d = 10;
      
        // 三元运算符,最终一定会产生一个结果值,这个值必须被使用起来
        System.out.println((c != d) ? "相等" : "不相等");
        String s = (c != d) ? "相等" : "不相等";
        System.out.println("s =" + s);

        //(c != d) ? "相等" : "不相等";// 错误: 不是语句
    }
	}

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-06-06发表,共计4888字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中