流程控制和数组

上传人:tia****g98 文档编号:245081331 上传时间:2024-10-07 格式:PPT 页数:36 大小:377.50KB
返回 下载 相关 举报
流程控制和数组_第1页
第1页 / 共36页
流程控制和数组_第2页
第2页 / 共36页
流程控制和数组_第3页
第3页 / 共36页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,第一级,第二级,第三级,第3章 流程控制和数组,第3章,流程控制和数组,条件语句,循环语句,流程控制关键字,条件语句,循环语句,循环语句,掌握,Java,语言的流程控制的使用,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,如果圆括号中的条件成立,就执行statement语句指定的操作,条件不成立就接着执行statement之后的语句。条件必须放在圆括号内。,Java中的条件语句格式如下:,if(condition),statement1;,statement2;,if语句, if 单独使用,第3章,流程控制和数组,例如:,如果a大于b,将a的值赋为30。,if(ab),a=30;,3.1 流程控制,3.1.1 条件语句,if语句, if 单独使用,if语句流程图:,ab,a=30,true,false,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if 单独使用,【案例1】当游戏开始的时候,需要设置人物的位置和生命值。,int exp = 0;/玩家生命值,int x = 0;/玩家x位置坐标,int y = 0;/玩家y位置坐标,boolean begin = true;/游戏开始的标志量,(游戏开始之前 exp=+exp+ x=+x+ y=+y);,if(begin=true),x = 10;,y = 10;,exp = 100;,(游戏开始之后 exp=+exp+ x=+x+ y=+y);,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if 单独使用,在上面的代码中,对于游戏是否开始的判断是通过if括号内的begin变量来判断,当begin变量为真的时候,代表游戏开始。游戏开始后,才能为玩家的位置和生命值进行赋值。上面代码执行后,会在控制台上打印出如下内容:,游戏开始之前 exp=0 x=0 y=0,游戏开始之后 exp=100 x=10 y=10,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if else,if-else语句在条件表达式的值为false时执行else语句。,如果if表达式的值为true,那么else块的代码就不执行了。,if(condition) /条件成立时,执行的命令,Statement1;,Statement2;,.,else /否则要执行的命令,Statement3;,Statement4,.,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if else,例如:,if(a b),a=30; /如果a大于b,将a的值赋为30。,else,a = 20; /否则,将a的值赋为20,ab,a=30,a=20,true,false,if-else语句运行流程图如下:,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if else,【案例】在游戏中,游戏将结束的条件通常都是玩家的生命值为0,则游戏结束。那么这段文字用代码如何描述呢?下面的案例就将这段条件判断的语言描述转化为代码。,int exp = 100;,System.out.println(exp = +exp);,if(exp 0),(游戏进行中);,else,(游戏结束);,exp -=110;,(-);,/ (接下一页),第3章,流程控制和数组,/(接上一页),System.out.println(exp变换之后 exp= +exp);,if(exp 0),(游戏进行中);,else,(游戏结束);,3.1 流程控制,3.1.1 条件语句,if语句, if else,上面代码中, if条件用来判断exp值,如果exp的值大于0的情况,则游戏进行,否则游戏将结束。当exp的值未做改变的时候,程序输出“游戏进行中”,当exp的值被改变后,则程序输出的是“游戏结束” 。,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if else,程序输出结果如下 :,exp = 100,游戏进行中,-,exp变换之后 exp= -10,游戏结束,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if else if else,当if后面的条件不满足时,判断else if后面括号里的新条件是否满足,如果满足即执行此内的语句,如果不满足则继续判断下面的else if,如果不再有else if,则执行else内的语句。,if(condition1) /条件1成立时,执行的命令,Statement1;,else if(condition2) /条件2成立时,执行的命令,Statement2;,else/否则要执行的命令,Statement5;,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if else if else,案例:,if (a 40) ,b=10;, else if (a30) ,b=20;, else if (a20) ,b=30;, else ,b=40;,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if else if else,if-else if-运行流程图如下:,a40,false,b=10,true,a30,b=20,true,false,a20,b=30,true,b=40,false,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if else if else,【案例3-7】在一个游戏中,当玩家的经验达到某一数值的时候,才可以升级。,public class DemoIf,public static void main(String args),int exp=500;/声明值,if(exp400),(升到4级);,(进入下一关);,/如果上个条件不满足的情况下,判断else if之后的条件,else if(exp200),(升到3级);,else if(exp100),(升到2级);,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if else if else,/ (接上一页),else/都不满足时,执行最后的else,(不升级);,(执行if后的语句);,在上面代码中,exp代表经验值,当exp每增长100,则升一级,否则不升级。,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,if语句, if else if else,代码执行的结果如下 :,升到4级,进入下一关,执行if后的语句,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,switch语句,switch语句的语法是:,switch (expression)case value1 :,statement1;break;case value2 :,statement2;break;,case valueN : statemendN;break;default : defaultStatement; ,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,switch语句,例如:,int i = 1;,switch( i ),case 1:,System.out.println(one);,break;,case 2:,System.out.println(two”);,break;,default:,System.out.println(Default);,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,switch语句,上例代码中,根据i的值会执行不同的case语句,如果a的值为1,打印结果为“one”;如果a的值为2,打印结果为“two”;i为其他值时,都会打印“Default”。,switch语句后的表达式的值必须是特定类型的。只可以使用byte型、short型、char型或int型,不能是float型,double型,boolean型,甚至long型。case子句中的值valueN必须是常量,而且所有case子句中的值应该是不同的。最后的default子句是可选的。,switch将控制传给语句标志case后面的值与表达式的值相同的第一个语句,否则switch将控制传给含有default标志的语句。如果没有default标志,控制将被传给switch块后面的第一个语句。,另外,在同一个switch块中不能有两个case标志使用相同的值。,第3章,流程控制和数组,3.1 流程控制,3.1.1 条件语句,switch和if-else if在某些情况下可以互换,比如当做为判断条件的变量是byte型、short型、char型或int型,并且判断的值都是定值的时候,才可以互换。如果该变量是一个取值范围,那就只能使用if-else if来做判断。,switch经常使用break来结束switch的执行。只要值与表达式匹配,程序就从这个点开始一直执行下去。所以后面的语句全部会被执行 。,break语句不是必须的,但不写尽管语法没错,可能会出现某些逻辑的错误。,第3章,流程控制和数组,3.1 流程控制,3.1.2 循环语句,while语句通过判断循环条件的值来决定是否继续循环。如果值为true,则重复执行判断条件后的语句;执行完判断条件后的语句,会再次返回,对循环条件进行判断,直到变量或表达式为false时,就跳过while语句,开始执行while后语句。,while循环的语法是:,initialization /初始化条件,while (termination) /循环条件,body; /循环体,iteration; /迭代,变更循环条件,当表达式termination为true时,执行中的语句,执行完iteration后,再次返回termination,对termination进行判断,如果为false,则退出括号。,第3章,流程控制和数组,3.1 流程控制,3.1.2 循环语句,例如:,int i = 0;,while (i 5),System.out.println(i);,i+,首先判断i值是否小于5,如满足则打印i的值,并把i值递增1。之后再次判断i值是否小于5,如此循环执行。当不满足时,退出while语句块。,第3章,流程控制和数组,3.1 流程控制,3.1.2 循环语句,上例执行流程图如下:,i5,打印,true,false,第3章,流程控制和数组,3.1 流程控制,3.1.2 循环语句,while循环首先测试循环条件,循环体中的代码可能永远不会执行。如果要确保循环体至少执行1次,应该把测试条件放到最后,可以使用dowhile循环实现,do-while循环的语法是:,initialization /初始化条件,do,body; /循环体,iteration; /迭代,变更循环条件, while (termination),; /,循环条件,dowhile,语句先执行循环体,即执行,body,和,iteration,,然后才判断循环条件,接着再执行循环体,然后再次判断循环条件,如此往复。,第3章,流程控制和数组,3.1 流程控制,3.1.2 循环语句,把while语句中的例子,用dowhile改写,代码如下:,int i = 0;,do,System.out.println(i);,i+, while (i 5);,第3章,流程控制和数组,3.1 流程控制,3.1.2 循环语句,dowhile执行流程图所示:,打印,i5,true,false,第3章,流程控制和数组,3.1 流程控制,3.1.2 循环语句,【案例3-12】用do循环来求0100的整数的和。,int amount=0;/用来存放总数的变量,int i=0; /定义一个循环控制变量,do,amount=amount+i;,i+;,while(i=100);,/打印出总和,(+amount);,注意:使用,dowhile,时,不要忘记最后,while,语句结尾处的分号。,第3章,流程控制和数组,3.1 流程控制,3.1.2 循环语句,for语句是一个经常使用的循环结构,它使用计数器或者类似的变量控制循环,并且在每次循环后修改计数器或类似的变量的值,其语法结构如下:,for循环的语法是:,for (initialization; termination; iteration),body; /循环体,/*,initialization /初始化条件,termination /循环条件,iteration /迭代,变更循环条件,*/,第3章,流程控制和数组,3.1 流程控制,3.1.2 循环语句,for循环首先运行初始化条件,然后判断循环条件。如果循环条件的值为true,循环体语句被执行,然后循环。再次判断循环条件是否满足。如此往复,直到循环条件的值为false,for循环执行结束。例如:,for(int i = 0;i 5;i+),System.out.println(i);,注: Java编程语言允许在for循环结构中使用逗号作为分隔符。 例如,for (i= 0, j = 0; j=10),break;,执行这段程序时,尽管while条件表达式始终为真,全循环只运行10次。,第3章,流程控制和数组,3.1 流程控制,3.1.3 流程控制关键字,2,continue,continue语句只出现在循环语句中,其作用是使程序跳过当前循环,转移到条件判断处进行下一次判断。例如:,for(int i = 0;i 3;i+),if (i = 1),continue;,System.out.println(i);,上例运行结果,会打印出0、2,而i=1的那次循环,被continue语句跳过了。,第3章,流程控制和数组,本课小结,本课讲解了流程控制的相关知识。,主要掌握if、switch分支语句;while、dowhile、for循环语句的应用,第3章,流程控制和数组,小测验,单选题,1. 以下描述正确的是( ),A. if语句可以嵌套使用,if-else语句也可以嵌套使用,B. if语句不可以嵌套使用,只有if-else语句才可以嵌套使用,C. if语句可以嵌套使用,if-else语句不可以嵌套使用,D. 无论if语句还是if-else语句均不可以嵌套使用,多选题,2.下列利用for语句,实现了10次的循环的有( ),A.for(int i = 1;i10;i+),B.for(int i = 1;i=10;i+),C. for(int i = 0;i10;i+),D.for(int i = 0;i=10i+),A,BC,第3章,流程控制和数组,课后作业,【作业1】用if语句实现求出三个数中的最大值。,【作业2】用while语句实现求出100以内奇数的和。,第3章,流程控制和数组,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!