二、java基本的程序设计结构(二)

上传人:第*** 文档编号:54450680 上传时间:2018-09-13 格式:PPT 页数:21 大小:1.90MB
返回 下载 相关 举报
二、java基本的程序设计结构(二)_第1页
第1页 / 共21页
二、java基本的程序设计结构(二)_第2页
第2页 / 共21页
二、java基本的程序设计结构(二)_第3页
第3页 / 共21页
二、java基本的程序设计结构(二)_第4页
第4页 / 共21页
二、java基本的程序设计结构(二)_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《二、java基本的程序设计结构(二)》由会员分享,可在线阅读,更多相关《二、java基本的程序设计结构(二)(21页珍藏版)》请在金锄头文库上搜索。

1、一、JAVA基本的程序设计结构(二),输出在JAVA中,要输出到控制台(console),只需要调用System.out.println即可,前面的FirstSample已经演示了该方法的使用。 输入JAVA中,输入比输出要复杂一点,要进行数据的输入,首先要构造一个Scanner对象,然后调用相关方法即可。示例如下(教材中的例子InputTest):,输入和输出I/O,import java.util.*; public class InputTest public static void main(String args) /先构造一个Scanner对象,并且以System.in为构造参数S

2、canner in = new Scanner(System.in); /输出提示语言到控制台,提示用户输入内容System.out.println(“Whats your name?”);String name = in.nextLine(); /输出用户输入的内容System.out.println(“Your name is:” + name); 更多I/O及相关操作方法参见教材。,格式化输出Java早期的格式化输出存在很多问题,引起了较大争议,但现在JAVA已经沿用了C语言库函数中的printf方法来格式化输出,解决了这些争议,其用法与C类似,例如:System.out.printf(

3、“%.2f” , 100.0/3);格式化输入Java的格式化录入跟C语言比较类似,也是通过格式控制符来控制输入数据的格式。,文件的输入和输出,File ReadJAVA中,要想对文件进行读取,先得构造一个File类对象,然后以这个File类对象为参数,再构造一个Scanner对象,示例如下: Scanner in = new Scanner(new File(“c:text.txt”);,注意该段代码中,在构造File类对象时,用文件的全路径名作为参数,如果不用绝对路径而使用相对路径,比如:”text.txt”,则默认的文件夹为Java虚拟机启动路径的相对位置。该段代码执行后,定义的Scan

4、ner对象in即指向文件的地址,可以调用相关方法读取文件内容。思考:为什么例子中的绝对路径使用了两个符号?,File Write如果要想将数据写入文件,首先需要构造一个PrintWrite对象,在构造这类对象时,与File类对象一样,需要提供文件名作为参数。示例如下: PrintWriter out = new PrintWriter(“c:test.txt”); 这里的文件路径名用法与File Read一样。,块:首先要了解块的概念,块(block)是指一对花括号所包含的全部内容。块可以相互嵌套,但注意,不能在嵌套的两个块中声明相同的变量,否则会出错。比如:public static voi

5、d main(String args) int n; int n;/这段代码将无法通过编译。,控制流程,条件语句(if): 单if语句格式形如if(condition) statement,当condition为真时,执行statment。这里condition既可以是变量或常量,也可以是表达式,而statement则可以是单个语句,也可以是块。例如:if(n = 1)a = n +1;b = n -1; ifelse语句,形如if(condition) statement1 else statement2,当condition为真时,执行statment1,否则执行statement2。,i

6、f(condition1) statement1 else if(condition2) statement2 else if(condition3) statement3 else statement4语句,如果存在多个选择条件,则可以使用这种结构的选择语句。例如: if(n = 1)x = 0; else if(n = 2)x = 1;else if(n = 3)x = 2;elsex = 3;综合编程:编程实现上述代码,能根据用户的输入输出不同的值。,循环语句(while,dowhile,for): while循环语句:while(condition) statement,while语句

7、的特点是,在每次执行statement之前,先判断contition语句是否为真,如果为真则执行,否则终止循环。 dowhile循环:do statement while (condition),与while语句不同的是,dowhile循环是先执行,再判断,相对于while循环来说,dowhile循环至少会执行一次。,for循环语句:for(statement1;statement2;statement3) statement4其中的statement1通常用来初始化计数器,而statement2通常是循环终止的条件,statement3则控制相关变量值,使得循环可以有条件终止而不至于称为死循

8、环。只要满足循环条件,statement4就会被执行。例如:for(int i = 0;i 5;i+)a+; 思考:for循环结束后,i的值是多少?,for each循环语句:for each是比for循环功能更为强大的循环结构,可以用来依次处理数组中的元素。其格式为for(variable : collection) statement,collection是一个已经定义好的数组或者一个实现了Iterable接口的类对象,variable则是用来暂存数组中元素的变量。for each循环的用法示例如下: int a= 0 ,1 , 2 , 3 , 4;/先创建一个5元数组 for each(

9、int e : a) System.out.println(e);/分别取得数组中的元素输出,多重选择语句(switch):前面我们介绍了具有多种选择的ifelse语句,但如果选择数过多ifelse语句就显得比较笨拙,switch语句弥补了这点不足。其语句形式为:switch(choice)case 1:statement1;break;case 2:statement2;break; default:statement3;break;/case标签必须是整数或枚举常量,注意不能使用字符串,choice可以是常量,也可以是表达式。,注意:如果case分支语句的末尾没有break语句,当前面的c

10、ase语句执行完后,并不会终止switch语句,而是会接着执行下一个case分支语句,所以一定要注意每一个case分支语句的最后都要加一个break语句,确保能正确跳出循环。如果没有匹配的case标签,而且有default语句,则执行default语句。在Java中,一般不使用switch语句。continue语句也能中断正常的循环流程,但与break不同的是,continue语句将控制语句跳到内层循环的首部执行,而不会中断循环。,数组:数组是一种存储同一类型值得集合的数据结构,数组的访问是通过整型下标来访问的。例如a是一个整型数组,ai就是数组中下标为i的整数。前面我们已经说了,数组的下标是

11、从0而非1开始的,即a0表示数组a的第一个元素的值。数组的声明:在声明数组变量时,需要指出数组类型(注意在Java里面声明数组时,推荐使用数据元素类型紧跟的风格)和数组变量的名字,示例如下: int a; int a;(Java中推荐使用前者),注意,上面的语句只是声明了数组变量a,而并没有将a初始化为一个真正的数组(没有创建),要达到这个目的,就要使用new运算符创建数组,示例如下: int a = new int10;该语句创建了一个10元数组,注意数组一旦创建好了,就不能再改变它的大小,如果需要动态的扩展数组的大小,就应该使用另一种数据结构数组列表。,数组的初始化:在Java中提供了一种

12、创建数组对象并同时赋予初始值的简化书写形式,示例如下: int a = 1 , 2 , 3 , 4 , 5;注意,使用这种形式创建并初始化一个数组时,不需要调用new运算符。匿名数组:可以创建一个匿名数组,new int 1,2,3,4就创建了一个匿名数组(没有数组变量名),匿名数组的用处就在于,如果有一个事先已经定义好并且初始化的数组,想要重新初始化数组的值,就可以用匿名数组来实现,代码如下: a = new int 6 , 7 , 8 , 9 , 10;,数组拷贝:在Java中允许将一个数组的所有值拷贝给另一个同类型的数组,这就要使用Arrays类的copyOf方法,示例如下: int b

13、 = Arrays.copyOf(a , a.length);注意,第二个参数是新数组的长度,新数组的长度可以比原数组大,也可以比原数组小。如果数组元素是数值型,多余的元素将被赋值为0;如果是布尔型,多余的将被赋值为false。而如果大小小于原数组,则只拷贝最前面的元素。思考:数组的拷贝还可以有什么用处?,答案:可以用来增加一个已经定义好的数组的大小,代码示例如下: a = Arrays.copyOf(a , 2*a.length);这段代码执行后,a的长度将变为原来的2倍。数组排序:对于数值型数组,如果想对数组里面存放的整型数据进行排序,可以使用Arrays类中的sort方法:Arrays.sort(a); 多维数组、不规则数组:对多维数组和不规则数组感兴趣的请参阅教材,这里不赘述。,命令行参数前面的例子里面,main方法里面都有一个带string args的参数,这个参数是用来接收一个字符串数组的,也就是命令行参数(在命令行中运行Java程序时的附带参数),当然,在IDE中就没有参数。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号