类型运算符和控制结构.ppt_第1页
类型运算符和控制结构.ppt_第2页
类型运算符和控制结构.ppt_第3页
类型运算符和控制结构.ppt_第4页
类型运算符和控制结构.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

Java程序设计语言,语句、块和空白,一个语句是一行用分号(;) 终止的代码 totals=a+b+c+d+e+f; 一个块是以上括号和下括号为边界的语句集合 x=y+1; y=x+1; 一个块可被用在一个类的定义中 public class Date int day; int month; int year; 块语句可被嵌套 Java程序中允许任意多的空白,标识符,标识符是赋予变量、类和方法的名称 可从一个字母、下划线(_)或美元符号($)开始。 是大小写区别对待的, 且无最大长度。 合法的标识符: identifier userName User_name _sys_varl $change 注意: Java技术源程序采用有效的16-bit 双字节字符编码标准(Unicode) ,而不是8-bit ASCII文本。 标识符不能是关键字,但是它可包含一个关键字作为它的名字的一部分。 thisone是一个有效标识符,但this却不是,因为this是一个Java关键字。 包含美元符号($)的关键字通常用的较少,因为Java用它来表示内部类,因而最好避免在标识符中使用它们。,关键字,关键字对Java技术编译器有特殊的含义,它们可标识数据类型名或程序构造(construct)名。 注意: true、false和null为小写,而不是象在C+语言中那样为大写。 无sizeof运算符,所有类型的长度和表示是固定的。 goto和const在Java中是关键字,但没有实际语义。,Java关键字,数据成分: boolean, int, byte, short, long, char, float, double, void, null, class, extends, abstract, interface, implements, private, protected, public, super, this, const, final, static, transient, volatile, native, synchronized, 运算加工成分: new, =, +, -, *, /, %, +, -, ?:, , “, , /, /*, */,八个原始数据类型,逻辑类型 boolean 文本类型 char 整数类型 byte, short, int, long 浮点类型 double, float,逻辑类型boolean,boolean 数据类型有两种值:true和false。 例如:boolean truth = true; 上述语句声明变量truth为boolean 类型,它被赋予的值为true。 注意:在整数类型和boolean类型之间无转换计算。,文本类型char,char代表一个16-bit Unicode字符 char c=中; 必须包含用单引号()引用的文字 可以使用下列符号: a 字符a t 一个制表符(Tab键) 反斜杠,即 u005c 一个特殊的Unicode字符,对应反斜杠。关于Unicode的详细信息可参阅,整数值,采用三种进制十进制、八进制和16进制 2 十进制值是2 077 首位的0表示这是一个八进制的数值 0xBAAC 首位的0x表示这是一个16进制的数值 缺省int,用字母“L”和“l”定义long。 错误:long population = 6000000000; 正确:long population = 6000000000L; 所有Java编程语言中的整数类型都是带符号的数字。,整数变量类型及范围,长度 类型 范围 8 bits byte -27(128) . 27 -1 16 bits short -215(32728) . 215 1 32 bit int -231(21亿) . 231 1 64 bits long -263(900亿亿) . 263 1 注:还可以用java.math包中的两个类: BigInteger,可以操作任意长度的整数运算。 BigDecimal,可以操作任意长度的浮点数运算。,浮点值,缺省为double 浮点文字包括小数点或下列各项之一 E或e (增加指数值),F或f (float),D或d (double) 例如: 3.14 一个简单的double值 4.02E23 一个大的double值 2.718F 一个简单的float值 三种特殊的浮点值: 最大值:Double.MAX_VALUE (2-2-52)21023) 最小值:Double.MIN_VALUE (2-1074) 正无穷大:Double.POSITIVE_INFINITY 负无穷大:Double.NEGATIVE_INFINITY 非数字:Double.NaN 无穷大表示溢出,如0除任何数。 非数字表示出错,如0/0或负数开方。,浮点变量类型及范围,长度 类型 范围 32 bits float 约3.40282347E+38F (有效小数6-7位) 64 bits double 约1.797693134862317E+308 (有效小数15位) 注意:浮点变量之间注意= =运算符的使用。应该用如下形式: double x, y; x = ; y = ; /*错误的用法*/ if (x = = y) /*正确的用法*/ if( Math.abs(x-y) 0.00001 ) 其中,0.00001表示需要的计算精度要求。,变量声明与赋值举例,合法 int x, y; / declare int variables float z = 3.414F; / declare and assign float double w = 3.1415; / declare and assign double boolean truth = true; / declare and assign boolean char c=中; / declare character variable 非法 y = 3.1415926; / 3.1415926 is not an int. w = 175,000; / the ( , ) cannot appear truth = 1; / a common mistake z = 3.14 ; /cant fit double into a float. Java变量声明与赋值习惯 在Java程序中,任何变量都必须经初始化后才能被使用。 变量声明与初始化赋值一起进行。 变量可以在函数一开始全部声明,也可以在使用之前再声明,以程序易于阅读修改为原则。,变量初始化错误举例,int x=10,y,z; if (x9) y=x; z = y; 上述程序编译时报错,因为y可能没有初始化就使用。,数据类型之间的逻辑转换,上图画出了可以自动进行的类型转换,如 int salary = 2000; float output = salary; 黑色粗箭头表示无精度损失的转换,红色细箭头表示有可能会出现精度损失的转换。,造型(cast),在信息可能丢失的情况下,类型转换通过造型来完成。如: double salary = 2000.85; int input = (int)salary; /input值为2000 若要采用四舍五入法,则应使用Math类的round方法。如: int input = (int)Math.round(salary); /2001 当转换结果超出了目标类型的范围时,结果是被截取的不同的值。例如 byte count1 = (byte)300; /count1值为44 byte count2 = (byte)400; /count2值为-112 boolean类型不参与造型。若要对boolean类型进行转换,使用(?:)操作符,如 boolean result = true; int score = b?1:0; /score值为1,运算符,算术运算符:+, -, *, /, % 递增递减运算符:+, - 建议不要和其他表达式混用。 关系运算符:= =, , =, y?x:y; 布尔运算符: x32;x的值不变,而不是0。 运算符仅被允许用在整数类型, 并且仅对int和long值有效。如果用在short或byte值上, 则在应用之前, 该值将通过带符号的向上类型转换被升级为一个int。 数学函数和常量: Math类中提供sqrt, pow, sin, cos, tan, atan, atan2, exp, log, PI, E。 若要保证平台无关性,应使用StrictMath类。,常用运算符的优先级,优先级由高到低为: . ( ) + - +(正号) -(负号) (造型) new * / % + - = 3 )利用了+优先级比高。,二元运算中的类型转换规则,当使用二元运算符把两个值结合到一起时,在运算前会将两个数转换成相同的类型。转换遵循如下规则: 只要有一个数是double型,则另一个会转换成double型。 否则,只要有一个数是float型,则另一个会转换成float型。 否则,只要有一个数是long型,则另一个会转换成long型。 否则,两个数都转换成int型。 例如: byte count1,count2; float price; short money; 那么count1+count2为int型,count1*price为float型,money-(count1+count2)*price为float型。,String类型,String不是一个原始数据类型,它是一个类。 具有用双引号引用的文字。 可按如下情形使用: String greeting = “Good Morning! n”; String err_meg = “ record not found !”; 注意: A表示一个字符。 “A”表示一个字符串。 String中可以用转义字符,用法同char类型。,字符串运算,连接:Java允许使用符号+把两个字符串连接起来。 +生成一个新字符串;非String类型自动转换为String。 如:int times=2; String name = “Tom”+times; /name为“Tom2”。 子串:subString方法可以提取子串。如: String person = “Tiger Woods”; String name = person.subString(0,5); /name为“Tiger” 第一个参数为子串开始位置,第二个参数为子串结束位置。 串相等:比较两个串是否相等用equals方法,不能用= =运算符。如: if ( name.equals(“Tiger”) ) 关于字符串的其他操作,参见String类文档。,流程控制语句,分支语句 if/else:两路分支。 switch/case:多路分支。 循环语句 for循环:一般用在循环次数事先可确定的情况。 while循环: 一般用在循环次数事先不可确定且循环体可以一次也不执行的情况。 do/while循环: 一般用在循环次数事先不可确定且循环体至少执行一次的情况。 特殊循环流程控制 break:跳出语句块。 continue:跳到语句块末尾(实际上等于开始下一次循环)。 label:块标记,即语句块的名字。,两路分支语句,if (条件) 语句或块; else 语句或块; 说明: 条件只能是布尔表达式,避免了一些逻辑错误。 else部分可省略。,还可写成下面的形式: if() else if() else ,多路分支语句,switch (expr1) case expr2: statements; break; case expr3: statements; break; default: statements; break; 说明: expr1, expr2, expr3必须是与int类型兼容的。 如果在每个分支结束时不加break语句,那么继续执行下一分支。 default是可选的。,循环语句,for语句: for (初始化语句; 布尔表达式; 更新语句) 语句或块; 初始化语句和更新语句中可以使用,分隔多个操作。 while语句: while (布尔表达式) 语句或块; 确认循环控制变量正确初始化,控制变量必须被正确更新以防止死循环。 do/while语句: do 语句或块; while (布尔表达式) 惯例:for循环一般用在那种循环次数事先可确定的情况,而while和do用在那种循环次数事先不可确定的情况。,特殊循环流程控制,break label; 用来从switch语句、循环语句和预先给定了label的块中退出。 continue label; 用来略过并跳到循环体的结尾。 label: 语句; 标识控制需要转换到的任何有效语句,它被用来标识循环构造的复合语句。,break/continue/label举例,test: for (i=1; i 10) continue test; /跳到for的更新语句i+ break test;/跳出test块,即执行x=j / end while / end for x = j;,Java编码约定命名,class类名应该是名词,大小写可混用,但首字母应大写。例如: class AccountBook interface界面名大小写规则与类名相同。 interface Account method方法名应该是动词,大小写可混用,但首字母应小写。在每个方法名内,大写字母将词分隔并限制使用下划线。例如: balanceAccount() variable所有变量都可大小写混用,但首字符应小写。词由大写字母分隔,限制用下划线,限制使用美元符号($)。 String currentCustomer constant原始常量应该全部大写并用下划线将词分隔;对象常量可大小写混用。Java中的常量通过在变量声明前面加上final关键字声明。 final int MAXIMUM-SIZE 检查哪些字符可以用作变量名可用Character类中的两个方法: isJavaIdentifierStart和isJavaIdentifierPart,Java编码约定格式,control structures当语句是控制结构的一部分时,即使是单个语句也应使用括号()将语句封闭。例如: spacing 每行只写一个语句并使用统一的缩进。每行只声明一个变量。,好的格式: int width; int height; if (condition) do something; else do something else; ,差的格式 int width, height; if (condition) do something else do something else ,Java程序基本结构,目标:编写一个程序,打印1到10 1、确定类名称叫作Hello 2、源程序文件名相应的叫作Hello.java 3、源代码如下: public class Hello public static void main(String args) /主程序由此开始。 for(int x=1; x=10; x+) System.out.println(x); 4、编译:javac Hello.java 5、运行:java Hello,Java基本输入输出语句,控制台键盘输入:从键盘输入流读入字符串,再转化为相应的类型。 import java.io.*; public static void main(String args) throws IOException InputStreamReader ins = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(ins); String str = br.readLine(); 对话框输入:弹出一个对话框,在文本框中输入字符串,再转化为相应的类型。程序必须以System.exit(0)退出。 import javax.swing.*; String name = JOptionPane.showInputDialog(“Whats your name?”); System.exit(0); 类型转换:字符串型可以转化为其他类型。 int y = Integer.parseInt(str); Double z = Double.parseDouble(str); 控制台输出:直接输出字符串,非字符串类型会自动转化为字符串。 System.out.println(y);,举例,import java.io.* ; import javax.swing.* ; public class IOTest public static void main(String args) throws IOException In

温馨提示

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

评论

0/150

提交评论