Java程序设计--类型、变量和表达式.ppt

上传人:scccc 文档编号:13214900 上传时间:2021-12-19 格式:PPT 页数:91 大小:546.50KB
返回 下载 相关 举报
Java程序设计--类型、变量和表达式.ppt_第1页
第1页 / 共91页
Java程序设计--类型、变量和表达式.ppt_第2页
第2页 / 共91页
Java程序设计--类型、变量和表达式.ppt_第3页
第3页 / 共91页
Java程序设计--类型、变量和表达式.ppt_第4页
第4页 / 共91页
Java程序设计--类型、变量和表达式.ppt_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《Java程序设计--类型、变量和表达式.ppt》由会员分享,可在线阅读,更多相关《Java程序设计--类型、变量和表达式.ppt(91页珍藏版)》请在三一文库上搜索。

1、,Java程序设计-类型、变量和表达式,Java程序设计-类型、变量和表达式,2,2,学习目标,掌握八个原始类型理解标识符、变量和常量能够熟练的进行变量和常量的声明理解显式和隐式的类型转换辨认、描述并使用Java运算符掌握表达式中运算符的执行顺序使用赋值语句,掌握赋值兼容性,Java程序设计-类型、变量和表达式,3,2.1 认识程序,什么是程序?,有一个著名的公式说:,3,程序=数据结构+算法”,什么是数据结构?,简单的数据结构就是众所周知的整型、实型这样的数据表示,复杂的数据结构可以是由简单的数据结构组合而成,如数组。,什么是算法?,算法就是用什么样的方法处理给定的数据从而得到所需的结果。,

2、Java程序设计-类型、变量和表达式,4,2.1 一个计算圆面积的程序,面积a= r2 中,计算过程可以这样描述:第一步:给出圆的半径;第二步:将半径值带入圆面积计算公式,计算出圆面积,用a保存结果。,4,/ 程序2-1:一个计算圆面积的程序public class ComputeArea public static void main(String args) int r = 10;double area=3.14*r*r;System.out.println(area);,Java程序设计-类型、变量和表达式,5,5,2.2变量,在程序中表示数据有两种方法,一种是在表达式中直接用原始值来表

3、示,如表示数值5、-6、7.86等,它们被称为“字面量(literal)另外一种是用一个特定的名字来间接表示,被称为“变量”间接表示的最大优点在于可以重复使用一个名字来表达某种类型的数值。注在Java语言中,所有的变量必须要首先声明,然后才能使用,而且访问一个未经初始化的局部变量,将导致编译错误。,Java程序设计-类型、变量和表达式,6,6,2.2.1标识符,在Java编程语言中,标识符是赋予变量、类或方法的名称。标识符可从一个字母、下划线(_)或美元符号($)开始,随后可跟除了在Java中作为运算符之外的任何可见字符所构成的连续字符串,但不能被空格或制表符隔开。标识符是大小写区别对待的并且

4、未规定最大长度标识符不能是关键字,Java程序设计-类型、变量和表达式,7,7,Java程序设计-类型、变量和表达式,8,8,练习题,下面哪些是合法的标识符:$persons TwoUsers *pointthisendline,Java程序设计-类型、变量和表达式,9,9,2.2.2 Java关键字,Java程序设计-类型、变量和表达式,10,10,2.2.3基本Java类型,Java程序设计-类型、变量和表达式,11,11,Java的基本数据类型,Java程序设计-类型、变量和表达式,12,12,2.2.4 变量声明,Java属于强类型的程序设计语言。所有变量和表达式在编译时都有明确的类型

5、 修饰符 类型 变量名 =初值,变量名=初值 例如:int x 0, y 1, z = 1;float a0f, b=0.1f;char c1, c2, c3=c;double d1=1.0d;boolean mycom=true; Date d1,d2; HelloWorld h1,h2;,Java程序设计-类型、变量和表达式,13,13,为什么要进行变量声明变量就是一个保存有值的内存位置的名字表示声明变量,就是分配内存通过类型声明,可以明确的知道每个变量占据内存的大小;通过声明,对非局部变量定义了一个初值;重要的也在于可以重复使用一个名字来表达某种类型的数值。,Java程序设计-类型、变量

6、和表达式,14,14,逻辑类型boolean truth = true; /声明一个布尔类型的变量truth,并初始化其值为true字符类型使用char类型可表示单个字符。一个char代表一个16-bit无符号的(不分正负的)Unicode字符。一个char文字必须包含在单引号内( )。a t 一个制表符u? 一个特殊的Unicode字符。?应严格按照四个16进制数字进行替换,Java程序设计-类型、变量和表达式,15,15,文本类型char和String,String不是一个基本数据类型,它是一个类具有用双引号(”)引用的多个文字字符“The quick brown fox jumped o

7、ver the lazy dog.”可按如下情形使用:String greeting = “Good Morning! n”;String err_meg = “ Record not found !”;Char和String类型变量的声明和初始化如下所示:char ch = A; / declares and initializes a char variable char ch1,ch2 ; / declares two char variables / declare two String variables and initialize themString greeting = Go

8、od Morning ! n ;String err_msg = Record Not Found ! ;String str1,str2 ; / declare two String variables,Java程序设计-类型、变量和表达式,16,16,小测验,指出下面的错误声明,说明原因 char ch = AB; 解释:单引号内只能包含一个字符 char ch1= “A”; 解释:双引号表示界定的是一个字符串常量 char ch2=100,Java程序设计-类型、变量和表达式,17,17,整数类byte, short, int, long 2 十进制值是2077 首位的0表示这是一个八进

9、制的数值0 xBAAC 首位的0 x表示这是一个16进制的数值默认整数类文字属int类型,除非在其后直接跟着一个字母“L”或者“l”,L表示一个long值。 byte smallOne=7;short count=10000;int score=100;long bigone=999999999L,largeOne;,Java程序设计-类型、变量和表达式,18,18,课堂练习,下面的哪些答案可以用以表示八进制值8。010 0 x10 08 0 x8,Java程序设计-类型、变量和表达式,19,19,课堂练习,写出下面的输出结果,int color=10;System.out.printf(10

10、的8进制表示是%on,color);System.out.printf(10的10进制表示是%dn,color);System.out.printf(10的16进制表示是%xn,color);System.out.printf(10的2进制表示是%sn, Integer.toBinaryString(color);System.out.printf(10的8进制表示是%sn, Integer.toOctalString(color);System.out.printf(10的16进制表示是%sn, Integer.toHexString(color);,Java程序设计-类型、变量和表达式,2

11、0,JAVA中Printf支持的格式,%c 单个字符%d 十进制整数%f 十进制浮点数%o 八进制数%s 字符串%u 无符号十进制数%x 十六进制数% 输出百分号%printf的格式控制的完整格式:% - 0 m.n l或h 格式字符,Java程序设计-类型、变量和表达式,21,java中二进制、八进制、十六制相互转换,十进制转成十六进制:Integer.toHexString(int i)十进制转成八进制Integer.toOctalString(int i)十进制转成二进制Integer.toBinaryString(int i)十六进制转成十进制Integer.valueOf(FFFF,

12、16).toString()八进制转成十进制Integer.valueOf(876,8).toString()二进制转十进制Integer.valueOf(0101,2).toString(),Java程序设计-类型、变量和表达式,22,22,浮点float和double,如果一个数字文字包括小数点或指数部分,或者在数字后带有字母F或f(float)、D或d(double),则该数字文字为浮点。3.14 一个简单的浮点值(a double)4.02E23 一个大浮点值2.718F 一个简单的float值123.4E+306D 一个大的带冗余D的double值以下是有关浮点数类型变量的声明和初始

13、化:float pi=3.1415926 , score;double weight=123.4E+36D;,Java程序设计-类型、变量和表达式,23,23,2.2.5 变量初始化,八种基本数据类型变量的默认值如下:booleanfalsebyte0charu0000,空,Unicode码的0000short0int0long0Lfloat0.0fdouble0.0初始化成员变量自动初始化局部变量必须在使用之前显示初始化,Java程序设计-类型、变量和表达式,24,24,课堂练习,进行下列变量说明初始值为0的int变量a初始值为1000的long变量b初始值为3.4的float变量c初始值为

14、4的char变量ch初始值为true的boolean变量e,Java程序设计-类型、变量和表达式,25,25,课堂练习,下面程序的运行结果是什么?,public class Demopublic static void main(String args) int i; System.out.println(i);,可能尚未初始化的变量i,Java程序设计-类型、变量和表达式,26,26,课堂练习,替换下面的代码段到上述程序,分析现象。float f=10.0f;double d=100.0d;f=d;System.out.println(f=+f);,可能损失精度,Java程序设计-类型、变量

15、和表达式,27,27,课堂练习,int a=10;char c=a;a=c+a;System.out.printf(c=%c,a);,Java程序设计-类型、变量和表达式,28,28,2.2.6 转义字符,Java程序设计-类型、变量和表达式,29,29,/ 程序2-2:转义字符的应用public class EscapeDemo public static void main(String args) System.out.println(“这是u03c0”); System.out.println(“下面的数据输出是按照制表位控制的,每2个一行。”); System.out.print(1

16、0+“t”+20+“n”+30+“t”+40+“n”); ,Java程序设计-类型、变量和表达式,30,30,课堂练习,System.out.printf(hellonworldn);,Java程序设计-类型、变量和表达式,31,31,2.2.7 常量,字面常量和标识符常量。常量用法通常用在开发中用标识符来表示一个固定值,便于在程序中通过名称来引用。 声明同时初始化final int MAX_SPEED=200;先声明,随后初始化final int MAX_SPEED;. . .MAX_SPEED=200;作为一种良好的编码习惯,常量名的定义一般均用大写来表示。,Java程序设计-类型、变量和

17、表达式,32,32,2.2.8 引用类型,除去基本类型之外的所有类型都是引用类型;引用对象的变量就是引用变量。/下面的例子创建了一个新的类型,如Card,public class Card char suit; String rank; ,声明一个变量 Card c = new Card(); 访问成员c.rank = “K”;,Java程序设计-类型、变量和表达式,33,33,2.3 运算符和表达式,表达式就是由变量、对象、运算符和方法调用构成的式子,表达式应该按照Java语法来构造,才可以被编译系统理解、执行,每个表达式都有一个某种类型的结果。 如:int a=0,b=0,max=0;ma

18、x=ab?a:b;a+(ab?a:b);,Java程序设计-类型、变量和表达式,34,34,2.3.1 运算符,Java程序设计-类型、变量和表达式,35,35,一元运算符即支持前缀形式,也支持后缀形式。如:operator op /前缀形式op operator /后缀形式所有的二元运算符都采用中缀表示,运算符在两个操作数中间。op1 operator op2 /中缀表示Java语言中只有一个三元运算符,也采用中缀表示。 op1 ? op2 : op3 /中缀表示instanceof是Java编程语言特有的运算符,Java程序设计-类型、变量和表达式,36,36,2.3.2 算术表达式,Ja

19、va程序设计-类型、变量和表达式,37,37,自增、自减运算符应用于算数表达式,自增(自减)运算只能应用于整数类型或char类型数据在。但在Java5.0及以上版本中,它们可以用于基本类型对应的Byte、Short、Integer、Long、Float、Double、Character,对于浮点数(此时的增减量为1.0)前置与后置的区别:假设i = 6则:表达式(+i)的值为7,运算完毕后i = 7表达式(i+)的值为6,运算完毕后i = 7,Java程序设计-类型、变量和表达式,38,38,程序23:ArithmeticDemo.javaJava对“+”运算进行了扩展,字符串连接、数字与字符

20、串连接。 String s; s = s= + 4*5;根据Java语言规范,在进行算术运算中需要注意以下几个问题:(1)整数除。两个操作数为整数,结果得到一个整数,结果截取商的整数部分。如果需要保留,应该对算术表达式进行强制类型转换。1/2的结果是0(float)1/2)的结果是0.5(float)(1/2)的结果则是0。(2)浮点除。两个操作数有一个为浮点数或两个都为浮点数,结果得到一个浮点数。,Java程序设计-类型、变量和表达式,39,(3)求余(取模运算)。浮点数也可以求余,但取余无法得出准确的结果。如10.1%3.3的结果可能为0.20000052。若%的两侧有负数,则运算结果的正

21、负取决于第一个数; 15%-4 -15%4,Java程序设计-类型、变量和表达式,40,40,强制类型转换,一种类型就是一些可能的值的集合某些类型比另外一些类型“大”-(值更多)每一个int都是一个long,long就是较大的类型包含子集,long,int,int,long,Java程序设计-类型、变量和表达式,41,41,强制类型转换(cont.),向宽的方向是自动的int i=32;/没有long x=32;/int to longlong x=i; /int to long向窄的方向必须强制说明int i=32L;/errorint i=(int)32L;/long to intbyte

22、 j=(byte)i;类型转换可能丢失信息,int,long,byte,short,float,double,char,Widening自动转换,强制转换narrowing,Java程序设计-类型、变量和表达式,42,42,强制类型转换在赋值的信息可能丢失的地方,编译器需要程序员用类型转换(typecast)的方法确认赋值。例如,它可以“挤压”一个long值到一个int变量中。显式转型做法如下:long bigValue =99L;int squashed =(int) (bigValue);在上述程序中,期待的目标类型被放置在圆括号中,并被当作表达式的前缀,该表达式必须被更改。一般来讲,建议

23、用圆括号将需要转型的全部表达式封闭。否则,转型操作的优先级可能引起问题。,Java程序设计-类型、变量和表达式,43,43,算术表达式的结果类型,Java程序设计-类型、变量和表达式,44,44,练习题,long bigval = 6; int smallval = 99L;double z = 12.414Ffloat z1 = 12.414; 下面的代码段执行后int i = 10;int n = i+%5;i和n的值分别是多少?,/6 是一个int类型,允许,/99L是long类型, 不合法,/12.414F是float类型,允许,/12.414是double类型,不合法,i=11,n=

24、0,Java程序设计-类型、变量和表达式,45,45,设 int a=1和double d=1.0,写出下列表达式的结果a=46/9 a=46%9+4*4-2a=45+43%5*(23*3%2)a=45+1+45*50%(-a)d=1.5*3+(+d)d=1.5*3+d+;a%=3/a+3,5,15,48,异常,6.5,5.5,1,Java程序设计-类型、变量和表达式,46,46,下列类型转换合法吗?char c=A;i= (int)c;boolean b=true;i=(int)b;float f=1000.34f;int i=(int)f;,double d=1000.34;i= (int

25、)d;int i=1000;char c=(char)i;int i=1000;boolean b=(boolean)i,Java程序设计-类型、变量和表达式,47,47,2.3.3关系和条件(逻辑)表达式,Java程序设计-类型、变量和表达式,48,48,程序:RelationalDemo.java注意:不存在连续比较,如2 2 & i 5不要在浮点类型变量之间进行相等比较,可以采用如下形式来判断相等:f1 f2 1e-4;,Java程序设计-类型、变量和表达式,49,49,条件(逻辑)运算符,Java程序设计-类型、变量和表达式,50,50,x=1,则下列表达式执行后,x的值(x

26、1)&(x+ 1)(x 1)&(x+ 1),Java程序设计-类型、变量和表达式,51,51,2.3.4 移位和位操作运算,整数在计算机内存中的二进制表示整数30的二进制表示就是0000 0000 0000 0000 0000 0000 0001 1110,Java程序设计-类型、变量和表达式,52,52,移位和位操作运算(c.),Java编程语言支持整数数据类型的位运算,它们的运算符求反Not And & XOR OR 10110000 = 01001111 00001101 = 00101101 & 0100111101100010 = 00101101 0

27、100111101101111 = 00101101 | 01001111,Java程序设计-类型、变量和表达式,53,53,移位和位操作运算(c.),位运算符10110000 = 01001111 00001101 = 00101101 & 0100111101100010 = 00101101 0100111101101111 = 00101101 | 01001111,Java程序设计-类型、变量和表达式,54,54,移位和位操作运算(c.),整数30的二进制表示就是0000011110,Java程序设计-类型、变量和表达式,55,55,移位和位操作运算(c.),运算符进行算术或

28、符号右移位。移位的结果是第一个操作数被2的幂来除,而指数的值是由第二个数给出的。例如:128 1 等价于 128/21 = 64256 4 等价于 256/24 = 16-256 4 等价于 -256/24 = -16,Java程序设计-类型、变量和表达式,56,56,移位和位操作运算(c.),逻辑或非符号右移位运算符主要作用于位图,而不是一个值的算术意义;它总是将零置于最重要的位上。例如:1010 . 2 结果是 111010 .在移位的过程中, 运算符使符号位被拷贝。 1010 . 2结果是001010 .,Java程序设计-类型、变量和表达式,57,57,在某些系统中,经常使用,Java

29、程序设计-类型、变量和表达式,58,58,2.3.5 赋值运算符,+= -= *= /= %=&= |= = = 快捷赋值运算 op = 等价于 = op 例如: a += 2 等价于 a = a + 2要注意的是,快捷运算符的右端操作数是作为一个整体参与运算的。例如:a *= b + 3 等价于 a = a * ( b + 3 ),Java程序设计-类型、变量和表达式,59,59,2.3.6 其它运算符,Java程序设计-类型、变量和表达式,60,60,2.3.6 其它运算符条件运算符,使用方法:boolean-exp ? exp1 : exp2如果表达式boolean-exp结果为

30、真(true),则返回exp1的值,否则返回exp2的值唯一的一个三元运算符注意:如果boolean-exp为真(true),则不计算exp2,例如:int i = 7;int j = i 6 ? i-1 : i+;System.out.println(i+”, ”+j);输出7,6,Java程序设计-类型、变量和表达式,61,61,ublic static void main(String args) int c=8; switch (c10?1:c25?2:c35?3:4) case 1: System.out.println( +c+ 有点冷。要多穿衣服。);break; case 2:

31、 System.out.println( +c+ 正合适。出去玩吧。);break; case 3: System.out.println( +c+ 有点热。);break; default: System.out.println( +c+ 太热了!开空调。); ,Java程序设计-类型、变量和表达式,62,62,2.3.6 其它运算符”+”,作用算术运算符例:29 + 78字符串连接符例:”Hello”+ “World”在同一表达式中的作用System.out.println(6+7+A); /78System.out.println(6+7+”A”); /13ASystem.out.pri

32、ntln(6+”A”+7); /6A7,Java程序设计-类型、变量和表达式,63,63,2.3.7 数学函数,三角函数sin cos tan asin acos atan atan2数值函数abs max min ceilfloor round rint sqrtpow exp log random toRadians,Java程序设计-类型、变量和表达式,64,Abs(double x):传回 x 的绝对值。X也可int long float acos(double x):传回x值的反余弦函数值。 asin(double x):传回x值的反正弦函数值。 atan(double x):传回x

33、值的反正切函数值。 atan2(double x, double y):传回极坐标(polar)的值 ceil(double x):传回不小于x的最小整数值 cos(double x):传回x径度的余弦函数值,Java程序设计-类型、变量和表达式,65,exp(double x):传回相当于ex值 floor(double x):传回不大于x的最大整数值 log(double x):传回x的自然对数函数值 max(double x,double y):传回x、y较大数 min(double x,double y):传回x、y较小数 pow(double x,double y):传回xy值 ra

34、ndom():传回随机数值,Java程序设计-类型、变量和表达式,66,rint(double x):传回最接近x的整数值 round(double x):传回x的四舍五入值 sin(double x): 传回x径度的正弦函数值 sqrt(double x): 传回x开平方值 tan(double x): 传回x径度的正切函数值 toDegrees(double angrad):传回将angrad径度转换成角度 toRadians(double angdeg): 传回将angdeg角度转换成径度,Java程序设计-类型、变量和表达式,67,67,public class MathDemo pu

35、blic static void main(String args) System.out.println(sin(30)=+ Math.sin(Math.toRadians(30.0); ,Java程序设计-类型、变量和表达式,68,68,2.3.8 字符运算,因为字符是一个2个字节的整数表示,因此可以对char类型的变量实行算术运算。如:char ch = a;.System.out.println( a= + (+ch); /输出结果是a=bSystem.out.println( a= + (int)(+ch); /输出结果是a=99,Java程序设计-类型、变量和表达式,69,69,课

36、堂练习,有四个整数分别用a、b、c、d表示,请使用条件运算符找出其中最大值。下面表达式是否正确?x y 0,e= ab? a:b;e= ec? e:c;e= ed? e:d;,Java程序设计-类型、变量和表达式,70,70,课堂练习,下面表达式的含义是什么?i30 & i%10!=0通常使用()改变优先级并增加可读性(i30) & (i%10)!=0)有半径r1.5,写出求圆周长、圆面积的表达式有半径r1.5,圆柱高h3,写出求圆柱体积表达式,Java程序设计-类型、变量和表达式,71,2.3字符串,字符串是引用类型。字符串并不是一个基本类型,而是作为一个String类型的对

37、象出现的String类是JDK提供的一个标准类,位于java.lang包下,专门用于字符串处理。字符串常量 字符串常量是一个用双引号()括起来的字符序列。如:This is a string literal 另外,字符串常量中可以包含一些不能从键盘上输入的字符,这涉及到字符转义。例如:This is a u03c0 实际上就是 This is a ,Java程序设计-类型、变量和表达式,72,字符串对象 字符串常量和字符串对象是两个不同的概念字符串常量在内存中由编译器分配到特定的区域,保存有字符序列。字符串对象只是一个引用,不能通过字符串对象对常量进行修改,String str=This is

38、 a string literal;str=This is other string literal;,声明字符串对象,String str; /声明了一个未初始化的变量String str=null; /初始化为空值String str=hello; /声明时同时进行初始化String str=new String(hello);,Java程序设计-类型、变量和表达式,73,2.3.3字符串运算,字符串连接,hello + namehello + 张华“string is ”+5+5 等价于5+5+ is a string 等价于,“string is 55”,10 is a string,

39、Java程序设计-类型、变量和表达式,74,字符串的串值比较 字符串之间的比较主要有两种情况,值比较和对象比较。值比较主要比较两个字符串的字符序列。,/ 程序2-5:字符串的比较public class StringDemo public static void main(String args) String s1=Morning!;String s2=morning!;boolean eq=s1.equals(s2);System.out.println(Morning.equals(morning)结果是+eq);int res=pareTo(s2);System.out.println

40、(MpareTo(morning)结果是+res);,Java程序设计-类型、变量和表达式,75,2.4基于文本的输入/输出,1.利用Scanner类实现键盘输入。首先,创建Scanner的一个对象,扫描数据来自键盘输入。Scanner sc=new Scanner(System.in);其次,通过调用扫描对象的方法实现输入。int num=sc.nextInt();最后,调用对象的close()方法关闭输入。sc.close();,/ 程序2-6:利用Scanner类实现键盘输入import java.util.Scanner;public class ScannerDemo public

41、static void main(String args) Scanner sc=new Scanner(System.in);System.out.println(请输入一个整数,敲回车结束);int num=sc.nextInt();System.out.println(你输入了一个:+num);System.out.println(请输入一个字符串,敲回车结束);String s=sc.next();System.out.println(你输入了字符串:+s);sc.close(); ,Java程序设计-类型、变量和表达式,76,2.利用Console类实现键盘输入 利用Console对

42、象可访问与当前 Java 虚拟机关联的基于字符的控制台设备,主要提供了基于控制台的格式化读取及密码读取功能,/程序2-7:利用Console类实现键盘输入import java.io.Console;public class ConsoleDemo public static void main(String args) Console cons =System.console();String account=cons.readLine(请输入账号);char pwd=cons.readPassword(请输入密码);,Java程序设计-类型、变量和表达式,77,2.4.2字符界面的输出,利

43、用System.out对象提供的输出方法print print是PrintStream类提供的一种输出方法,支持boolean、char、char、double、float、int、long、short、String、Object的直接输出println println方法不同于print的主要之处在于将输出信息打印完之后,还要写出行分割字符串,默认情况下,这个行分割字符串是n,即输出一个换行回车。 printfprintf则是一种格式化输出,类似于c语言的printf(),实现了对布局对齐和排列的支持,以及对数值、字符串和日期/时间数据的常规格式和特定于语言环境的输出的支持,Java程序设计

44、-类型、变量和表达式,78,1.print()方法print是PrintStream类提供的一种输出方法,支持boolean、char、char、double、float、int、long、short、String、Object的直接输出,例如:int i = 100;boolean status = true;String str = Welcome;.System.out.print(i);System.out.print(status);System.out.print(str);利用print()方法输出需要注意的是,每次输出均紧接在上一次输出的位置,中间没有分隔符。,Java程序设计

45、-类型、变量和表达式,79,2.println()方法println方法不同于print的主要之处在于将输出信息打印完之后,还要输出行终止符,默认情况下,这个行行终止符是n,即输出一个换行。类似的,int i = 100;boolean status = true;String str = Welcome;.System.out.println(i);System.out.println(status);System.out.println(str);print()和println()方法对接受的参数均转换成字符串输出,因此,类似于下面的输出:System.out.println(i=+i);

46、表示字符串“i=”再连接上变量i的值传换成的字符串输出。,Java程序设计-类型、变量和表达式,80,rintf方法,public class TestPrintf public static void main(String args) int i = 100;boolean status = true;String str = Welcome;System.out.printf(%d %b %s,i,status,str);,Java程序设计-类型、变量和表达式,81,格式字符串,产生格式化输出的每个方法都需要格式字符串 和参数列表。格式字符串是一个 String,它可以包含固定文本以及一

47、个或多个嵌入的格式说明符。请考虑以下示例: Calendar c = .; String s = String.format(Dukes Birthday: %1$tm %1$te,%1$tY, c); 这里包含三个格式说明符 “%1$tm”、“%1$te” 和 “%1$tY”,它们指出应该如何处理参数以及在文本的什么地方插入它们。格式字符串的其余部分是包括 Dukes Birthday: 和其他任何空格或标点符号的固定文本。,Java程序设计-类型、变量和表达式,82,Java程序设计-类型、变量和表达式,83,常规类型、字符类型和数值类型的格式说明符的语法如下: %argument_ind

48、ex$flagswidth.precisionconversion可选的 argument_index 是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 1$ 引用,第二个参数由 2$ 引用,依此类推。 可选 flags 是修改输出格式的字符集。有效标志集取决于转换类型。 可选 width 是一个非负十进制整数,表明要向输出中写入的最少字符数。 可选 precision 是一个非负十进制整数,通常用来限制字符数。特定行为取决于转换类型。 所需 conversion 是一个表明应该如何格式化参数的字符。给定参数的有效转换集取决于参数的数据类型。 用来表示日期和时间类型的格式说明符的

49、语法如下: %argument_index$flagswidthconversion与参数不对应的格式说明符的语法如下:%flagswidthconversion,Java程序设计-类型、变量和表达式,84,long n = 461012;System.out.printf(%d%n, n); System.out.printf(%08d%n, n); System.out.printf(%+8d%n, n); System.out.printf(%,8d%n, n);System.out.printf(%+,8d%n%n, n);,Java程序设计-类型、变量和表达式,85,double p

50、i = Math.PI;System.out.printf(%f%n, pi);System.out.printf(%.3f%n, pi);System.out.printf(%10.3f%n, pi); System.out.printf(%-10.3f%n, pi);,Java程序设计-类型、变量和表达式,86,复习要点,熟记Java的语法规范、熟练使用各种数据类型、运算符和表达式标识符以字母、下划线和$开头,后跟字母、数字、下划线和$的连续序列长度没有限制区分大小写不能使用关键字关键字goto保留,没有sizeof,Java程序设计-类型、变量和表达式,87,数据类型基本数据类型整数型:byte、short、int、long浮点型:float、double字

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1