java编程基础表达式运算符.ppt_第1页
java编程基础表达式运算符.ppt_第2页
java编程基础表达式运算符.ppt_第3页
java编程基础表达式运算符.ppt_第4页
java编程基础表达式运算符.ppt_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运算符、表达式与语句,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 = 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中仍然将他们保留了下来 自增 前加加:+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 (“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 void 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) 逻辑与:使用&表示,逻辑与是个双目运算符(即有两个操作数的运算符) ,只有当两个操作数都为真的时候,结果才为真;其余情况结果均为假。逻辑与表示的并且的意思。 2) 逻辑或:使用|表示,逻辑或也是个双目运算符,只有当两个操作数都为假的时候,结果才为假;其余情况结果均为真。逻辑或表示或者的意思。 关于逻辑运算符的短路特性 1) 逻辑与:如果第一个操作数为 false,那么结果肯定就是 false,所以在这种情况下,将不会执行逻辑与后面的运算了,即发生了短路。 2) 逻辑或:如果第一个操作数为 true,那么结果肯定就是 true,所在在这种情况下,将不会执行逻辑或后面的运算了,即发生了短路。,3.2.4 逻辑运算符,3.2.4 逻辑运算符,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 = 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,String 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 运算符优先级,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(“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 static 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 SwitchTest 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.out.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、while 循环,如果不知道循环控制元素的范围到底是多少时,就可以利用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流程控制是用来强迫中断运行该区块内的语句,使得程序流程跳出该区块,继续运行区块外部的语句。 continue流程控制 continue流程控制通常与循环流程配合使用,跳出本次循环,运行下次循环。,3.3.3 跳转语句,课堂练习,3.4 数 组,数组(array)是相同类型变量的集合,可以使用共同的名字引用它。 数组中的一个特别要素是通过下标来访问它。 数组提供了一种将有联系的信息分组的便利方法。,2.15.1 一维数组,一维数组实质上是相同类型变量列表。 要创建一个数组,我们必须首先定义数组变量所需的类型。 通用的一维数组的声明格式是: type var-name; 或者:type var-name ; 所有数组的下标从0开始。,2.15.2 数组的初始化-1,使用new关键字来为数组分配内存。 当运算符new被应用到一维数组时,它的一般形式如下: array-var = new typesize;,2.15.3 数组的初始化-2,用运算符new 分配数组后,数组中的各下标的值如下所示: 数字数组中的元素将会被自动初始化为零; 布尔数组将被初始化为false; 对象数组将被初始化为null(空)。,2.15.4 数组的初始化-3,在数组声明时自定义初始化数据,可以如下声明: int month_days = 31,28,31,30,31,30,31,31,30,31,30,31; 等同于: int month_days = new int 31,28,31,30,31,30,31,31,30,31,30,31;,2.15.5 数组的错误初始化,注意:只能在数组声明时用大括号对来自定义数据,否则只能机械地分别对每个下标元素进行赋值。 int month_days = new int12; month_days = 31,28,31,30,31,30,31,31,30,31,30,31; /错误 我们只能采用如下的方法为已经创建的数组赋值。 int month_days = new int12; month_days0 = 31; month_days1 = 28; ,2.15.6 多维数组,定义多维数组变量要将每个维数放在它们各自的方括号中。 例如,下面语句定义了一个名为twoD 的二维数组变量。 int twoD = new int45;,2.16 java.lang包,java.lang包是Java语言的核心类库,包括了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等。 每个Java程序运行时,系统都会自动地引入java.lang包。 java.lang包的加载是缺省的。,2.12字符串,字符串常量 :字符串常量是用双引号括住的一串字符。 String对象 :String是串的意思,这个类是表示字符串常量的类。 StringBuffer对象 :StringBuffer类被设计用于创建和操作动态字符串信息。,如:“Hello World!“,2.12.1 String对象,在Java中,字符串常量是一个类:String类,C语言中,字符串就是字符数组,两者是不同的。,创建一个空的字符串对象。,创建一个非空字符串对象:,可以通过运算符”+”来连接字符串:,String test=new String(); 或者: String test; test=new String();,String hello=new String(“Hello World!”); 或者: String hello = “Hello World!”;,String hello=new String(“Hello World!”); 或者: String hello = Hello +“ Happy”;,2.12.2 String 类方法,charAt() : 返回字符串中某个特定位置的字符 indexOf() :返回字符串中某个特定字符或子字符串首次出现的索引 toUpperCase() : 将字符串内的所有字符从小写改为大写 toLowerCase() : 将字符串内的所有字符从大写改为小写,2.12.3 String

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论