《第三章流程控制语句.docx》由会员分享,可在线阅读,更多相关《第三章流程控制语句.docx(20页珍藏版)》请在第壹文秘上搜索。
1、第三章流程控制语句第01讲java程序的结构及流程控制目录第一节java程序的结构第二节流程控制第三节输入/输出第四节处理异常01java程序的结构一个JaVa程序可以由一个或多个.java文件组成,这些文件称为源文件。每个源文件中含有一个或多个类或接口。一个源文件中如果有多个类,则最多只能有一个是PUbIiC类型的类,且该源文件的名字即为这个公有类的名字,且大小写也要一致。其他非PUbIiC的类的个数不限。PaCkage语句:包语句,每个文件最多只有一个,且必须放在文件开始的地方。import:引入语句,可以没有,也可以有多个,如果有import语句的话,必须放在所有类定义的前面,具有PUb
2、liC权限的类定义:每个文件中最多有一个。类定义:每个文件中包含的非public权限的类定义的个数没有限制。接口定义:每个文件中包含的接口定义个数没有限制。包的概念包是类的容器,包的设计人员利用包来划分名字空间,以避免类名冲突。Java中的包一般均包含相关的类,使用包的目的就是将相关的源代码文件组织在一起。src田quCreatesfolderscorrespondingtopackages.田student田teacher由toolsJRFSVVtQmIihrarvirSourcefolder:test/srcBrowse.Name:quikao*程序中如果有PaCkage语句,该语句一定是
3、源文件中的第一条非注释语句,它的前面只能有注释或空行。通常包名全部用小写,一个包可以包含若干个类文件,还可以包含若干个包。引入语句packagequ.zikao;importstudent.*;引入student包下面所有的类importnt;引入单个学生类publicclassControlpublicstaticvoidmain(Stringargs)引入时包与包下边的包用.分隔引包错误示例示例语句说明示例一packageTransportation;importjava.awt.Graphics;importjava,util.ArrayList;正确示例二importjava,ics;
4、importjava.util.ArrayList;packageTransportation;错误原因:在包说明语句之前含有其他语句示例三packageTransportation;packageHouse;importjava.util.ArrayList;错误原因:含有两个包说明语句02流程控制流程控制什么是流程控制,简单的来说就是控制程序走向的语句。流程控制语句又分赋值语句、分支语句、循环语句和跳转语句。语句是JaVa的最小执行单位,语句间以分号(;)作为分隔符。语句分为单语句及复合语句,单语句就是通常意义下的一条语句;而复合语句是一对大括号(“”和“”)括起来的语句组,也称为“块”。
5、赋值语句在JaVa程序中,表达式可以当作一个值赋给某个变量,这样的语句称为赋值语句。有的表达式也可单独当作语句,这样的语句称为表达式语句。语句与表达式有相同的地方,也有不同的地方。首先,有的表达式可以当作语句,但并不是所有的语句都是表达式;另外,每个表达式都会得到一个值,即表达式的计算结果。下面的语句中,前两条是赋值语句,第3条是表达式语句。customer!=newCustomer();x=12;x+;分支语句分支语句根据一定的条件,动态决定程序的流程方向,从程序的多个分支中选择一个或几个来执行。分支语句有if语句和SWiteh语句两种,先看下if语句的形式publicclassContro
6、lpublicstaticvoidmain(Stringargs)inta=3;intb=5;if(ab).printin(a);语句1else.printin(b);语句2)if关键字之后的条件表达式必须得到一个逻辑值,if语句的含义是:当条件表达式结果为true时,执行语句1,然后继续执行if后面的语句;当条件表达式为false时,如果有else子句,则执行语句2,可以没有else语句,如果没有则跳过该if语句,继续执行后面的语句。这是两种形式。if-elsepublicstaticvoidmain(Stringargs)inta=59;if(a90).pringln(成绩优秀);else
7、if(a=60&a=90).printin(成绩良好);elseif(a=59).printin(差一分就及格了”);)else.printin(不及格”);)可以嵌套使用,if中还可以写if判断switch语句switchCaSe语句如下:switch(表达式)(case选择值1:程序代码块1;case选择值2:case选择值3:程序代码块2;break;case选择值n:程序代码块n;break;/break语句可选default:程序代码块;SWitCh语句的语义是:计算表达式的值,用该值依次和1,2,,n相比较。如果该值等于其中之一,例如1,那么执行CaSe1之后的语句组,直到遇到br
8、eak语句结束。如果没有相匹配的结果,则执行default之后的语句。可以将default看作是一个分支,即前面的条件均不满足时要执行的语句。switch语句中各CaSe之后的语句既可以是单语句,又可以是语句组。不论执行哪个分支,程序流都会顺序执行下去,直到遇到break语句为止。switch语句有以下注意几点:口switch语句中不能忘记break,否则会有贯穿现象。口switch的应用有所限制,其表达式只能应用于int,charswitch语句实例publicclassTestpublicstaticvoidmain(Stringargs)Scannerscanner=newScanner
9、();.printin(请输入数字”);intday=nt();switch(day)case 1: printin(今天是星期一“);break;case 2: printin(今天是星期二);break;case7:.printin(今天是星期日);break;default:.printin(抱歉,请重新输入“);break;循环语句循环语句的作用是反复执行一段代码,直到不满足循环条件为止。JaVa语言提供3种循环语句,分别是for语句、WhiIe语句和do语句。首先看for循环for语句的语法格式是:for(初始语句;条件表达式;迭代语句)循环体语句;* 初始语句和迭代语句中可以含有多
10、个语句,各语句间以逗号分隔,for语句括号内的3个部分都是可选的,条件表达式为空时,默认规定为恒真。for语句的语义是:先执行初始语句,判断条件表达式的值,当条件表达式为真时,执行循环体语句,再执行迭代语句,然后去判别条件表达式的值。for语句实例publicstaticvoidmain(Stringargs)for(inti=l;i=10;i+).printin(i);)该程序总共执行10,每次输出i的值,当i=ll时,循环条件为假,循环结束,如果条件表达式的值永远为真,则循环会无限制地执行下去,直到系统资源耗尽为止。while语句当程序中不能明确地指明循环的执行次数时,可以仅用条件表达式来
11、决定循环的执行与否。这样的循环可用While语句来实现。publicstaticvoidmain(Stringargs)inta=l;intb=2;初始化部分while(ab)ab为循环条件a=a+2;/循环体).printin(a+b);)* 如果ab);.printin(a+b);* 不论条件是否成立,do中的循环体都会运行一次。跳转语句标号可以放在任意语句之前,通常与for、While或do语句配合使用,其语法格式为:标号:语句;跳转语句breakbreak语句可用于3类语句中,第一类是在SWitCh语句中,第二类是在for、WhiIe及do等循环语句中,第三类是在语句块中。在SWitC
12、h语句及循环语句中,break的语义是跳过本块中余下的所有语句。可以和标号一起使用。publicstaticvoidmain(Stringargs)for(inti=l:i=10;i+)if(i=3)break;如果i等于3跳出循环.println(i);)* 如果是多层循环,break就终止当前循环以及包括的循环。break例题publicstaticvoidmain(Stringargs)inti,j=0,k=0,h;Iabelkfor(i=0;i100;i+,j+=2)label2:label3:switch(i%2)case1:h=1;break;default:h=0;break;i
13、f(i=50)breakIabell;.println(i+i);)continue在循环语句中,continue语句可以立即结束当次循环,开始执行下一次循环,当然执行前要先判断循环条件是否满足。ContinUe语句也可以和标号一起使用,其语法格式为:continue标号;publicstaticvoidmain(Stringargs)for(inti=l;i=10;i+)if(i=3)ContinUc;如果i等于3跳过当前循环.println(i);)continue例题out:for(inti=0;i10;i+)for(intj=0;ji).println();continueout;.p
14、rint(*);)第02讲输入/检出及处理异常03输入/输出输入-SCanner类程序运行期间交互式地读入用户的输入并将计算结果返回给用户是一个基本要求。SCanner类属于java.UtiI包.它提供了许多方法,可用来方便地读入不同类型的输入值。比如从键盘输入、从文件中输入等。要调用SCanner类的方法,必须先创建一个对象。JaVa中的对象使用new运算符来创建。下面的语句创建了一个SCanner类对象,它读入键盘输入:Scannerscan=newScanner(System,in);创建了一个变量SCan,它代表一个SCannCr对象。对象本身由new运算符来创建,并调用构造方法来建立对象。SCanner类的构造方法接收一个参数,这个参数代表了输入源。System.in对象代表标准输