《java编程基础表达式运算符》由会员分享,可在线阅读,更多相关《java编程基础表达式运算符(71页珍藏版)》请在金锄头文库上搜索。
1、运算符、表达式与语句,3.1 概述,程序是由许多语句组成的 语句的基本单位是表达式与运算符,3.2 运算符,Java中提供的运算符,按照运算符的功能可以分为4类 。 赋值运算符 算术运算符 关系运算符 逻辑运算符 位运算符,3.2.1 赋值运算符,3.2.1 赋值运算符,赋值运算符(=)用于为变量赋值。一次可以为多个变量赋值。 例如:,int z = 50; int x , y ; x = y = z ;,3.2.2 算术运算符,3.2.2 算术运算符,public class OperatorDemo01 public static void main(String args) int i
2、= 10; int j = 3; System.out.println(i+“+”+j+”=”+(i+j); System.out.println(i+“-”+j+”=”+(i-j); System.out.println(i+“*”+j+”=”+(i*j); System.out.println(i+“/”+j+”=”+(i/j); System.out.println(i+“%”+j+”=”+(i%j); ,10+3=13 10-3=7 10*3=30 10/3=3 10%3=1,3.2.2 算术运算符,3.2.2 算术运算符,自增与自减运算符也是各个语言中最常见到的语句,在java中仍然
3、将他们保留了下来 自增 前加加:+a 后加加:a+,先把a的值加一,再执行整个语句,再执行整个语句,再把a的值加一,3.2.2 算术运算符,public class OperatorDemo02 public static void main(String args) int a = 3, b = 3; int x = 6, y = 6; System.out.println(“a=” + a); System.out.println(“t a+=” + (a+) + ”,a=” + a ); System.out.println(“b=” + b); System.out.println (
4、“t +b=” + (+b) + ”,b=” + b ); System.out.println(“x=” + x); System.out.println (“t x-=” + (x-) + ”,x=” + x ); System.out.println(“y=” + y); System.out.println (“t -y=” + (-y) + ”,y=” + y ); ,3.2.2 算术运算符,3.2.3 关系运算符,比较运算符用于测试两个操作数之间的关系,返回一个布尔值。,3.2.3 关系运算符,Public class OperatorDemo03 public static vo
5、id main(String atgs) System.out.println(“31=”+(31); System.out.println(“3=1=”+(3=1); System.out.println(“3=1=”+(3=1); System.out.println(“3=1=”+(3=1); System.out.println(“3!=1=”+(3!=1); ,31=true 3=1=true 3=1=false 3=1=false 3!=1=true,3.2.4 逻辑运算符,3.2.4 逻辑运算符,逻辑运算符本身也返回一个boolean值 1) 逻辑与:使用&表示,逻辑与是个双目运
6、算符(即有两个操作数的运算符) ,只有当两个操作数都为真的时候,结果才为真;其余情况结果均为假。逻辑与表示的并且的意思。 2) 逻辑或:使用|表示,逻辑或也是个双目运算符,只有当两个操作数都为假的时候,结果才为假;其余情况结果均为真。逻辑或表示或者的意思。 关于逻辑运算符的短路特性 1) 逻辑与:如果第一个操作数为 false,那么结果肯定就是 false,所以在这种情况下,将不会执行逻辑与后面的运算了,即发生了短路。 2) 逻辑或:如果第一个操作数为 true,那么结果肯定就是 true,所在在这种情况下,将不会执行逻辑或后面的运算了,即发生了短路。,3.2.4 逻辑运算符,3.2.4 逻辑
7、运算符,Public class OperatorDemo04 public static void main(String args) boolean a = true; boolean b = false; System.out.println(“a|b” + (a|b); System.out.println(“a|b” + (a|b); System.out.println(“a ,3.2.4 逻辑运算符,3.2.4 逻辑运算符,public class LogicTest public static void main(String args) int a = 1; int b =
8、2; int c = 3; int d = 4; /* boolean e = (a b) ,3.2.4 逻辑运算符,public class LogicTest2 public static void main(String args) int a = 1; int b = 2; int c = 3; int d = 4; int f = 5; boolean e = (a b) ,3.2.5 扩展赋值运算符,3.2.5 扩展赋值运算符,3.2.6 字符串连接,3.2.7 三元运算符,三元运算符(? :)可以代替if-else结构。运算过程如下图所示:,?,:,条件,表达式1,表达式2,St
9、ring type = “工人”; salary = type.equals(“经理”) ? 3000 : 2000 System.out.println(“我们的薪水是”+ salary);,由于type不等于“经理”(条件为false),所以salary=2000。,3.2.7 三元运算符,public class Test public static void main(String args) int a = 1; int b = 2; int c = 3; int d = 4; int e = a b ? c : d; System.out.println(e); ,3.2.8 运算
10、符优先级,2.13.6 instanceof运算符,instanceof为对象引用运算符; 如果在此运算符左侧对象是右侧类型的实例时,它将返回true; 使用此运算符可以确定对象是否属于一个特定的类型。,class InstanceDemo public static void main (String args) InstanceDemo ins = new InstanceDemo(); if ( ins instanceof InstanceDemo ) System.out.println(“ins是InstanceDemo的实例!“); else System.out.println
11、(“ins不是InstanceDemo的实例!“); ,3.3 流程控制,Java语言中程序流程语句的分类: 条件语句 循环语句 跳转语句,顺序结构,3.3.1 条件语句,1、if else语句,根据条件是true还是false来执行相应的语句。,if ( 条件 ) 单个语句 else 单个语句,if ( 条件 ) 语句组 else 语句组 ,Java语言的if else语句可以嵌套使用 。,1、if else语句,1、if else语句,1、if else语句,1、if else语句,1、if else语句,1、if else语句,public class IfTest public sta
12、tic void main(String args) int a = 3; int b = 2; if(a b) System.out.println(“a b“); else if(a b) System.out.println(“a b“); else System.out.println(“a = b“); ,2、switch 语句,switch流程控制的语法如下:,switch ( 表达式 ) case 常量数值1 语句(组) break ; case 常量数值2 语句(组) break ; . default: 语句(组) ,2、switch 语句,public class Swit
13、chTest public static void main(String args) int a = 3; switch(a) case 3: System.out.println(“a = 3“); break; case 1: System.out.println(“a = 1“); break; case 2: System.out.println(“a = 2“); break; default: System.out.println(“default“); if(3 = a) System.out.println(“a = 3“); else if(1 = a) System.ou
14、t.println(“a = 1“); else if(2 = a) System.out.println(“a = 2“); else System.out.println(“default“); ,3.3.2 循环语句,Java中所提供的循环流程控制有: for循环流程控制 while循环流程控制 dowhile循环流程 forin循环(JDK5.0新增)。,1、for 循环,for循环流程控制的语法如下:,/进入for循环流程控制 for(初始表达式 ;判断表达式;递增表达式) for循环主体; /结束for循环流程控制,1、for 循环,1、for 循环,1、for 循环,2、whil
15、e 循环,如果不知道循环控制元素的范围到底是多少时,就可以利用while循环控制流程。 在进入while循环流程控制时,用户根本不知道到底要重复运行循环几次,决定权在于while循环的条件表达式以及循环控制元素。,/进入while循环流程控制 while(条件表达式) while循环主体; /结束while循环流程控制,2、while 循环,2、while 循环,3、do.while 循环,do.while循环与while循环 的区别是dowhile的循环主体至少运行一次。 语法如下:,do do-while主体; while(条件表达式);,3、do.while 循环,3、do.while 循环,4、for/in 循环,for/in循环通常叫作增强的 for 或者 foreach循环,针对数据群组执行遍历功能。 for/in循环是 Java 5.0 中一个极为方便的特性。 实际上它没有提供任何新的功能,但它显然能让一些日常编码任务变得更简单一些。如下例:,int primes = new int 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 ; for (int n : primes) System.out.println(n); ,3.3.3 跳转语句,跳转流程控制用来中断循环,或是返回到指定语句的特殊流程控制。 break流程控制 Break流程控