《[精选]流程控制和数组》由会员分享,可在线阅读,更多相关《[精选]流程控制和数组(37页珍藏版)》请在金锄头文库上搜索。
1、手机游戏JAVA语言基础,第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=
2、30;,3.1 流程控制,3.1.1 条件语句, if语句, if 单独使用,if语句流程图:,第3章 流程控制和数组,3.1 流程控制,3.1.1 条件语句, if语句, if 单独使用,【案例1】当游戏开始的时候,需要设置人物的位置和生命值。,int exp = 0;/玩家生命值 int x = 0;/玩家x位置坐标 int y = 0;/玩家y位置坐标 boolean begin = true;/游戏开始的标志量 System.out.println(游戏开始之前 exp=+exp+ x=+x+ y=+y); if(begin=true) x = 10; y = 10; exp = 10
3、0; System.out.println(游戏开始之后 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
4、-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,if-else语句运行流程图如下:,第3章 流程控制和数组,3.1
5、 流程控制,3.1.1 条件语句, if语句, if else,【案例】在游戏中,游戏将结束的条件通常都是玩家的生命值为0,则游戏结束。那么这段文字用代码如何描述呢?下面的案例就将这段条件判断的语言描述转化为代码。,int exp = 100; System.out.println(exp = +exp); if(exp 0) System.out.println(游戏进行中); else System.out.println(游戏结束); exp -=110; System.out.println(-); / (接下一页),第3章 流程控制和数组,/(接上一页) System.out.pri
6、ntln(exp变换之后 exp= +exp); if(exp 0) System.out.println(游戏进行中); else System.out.println(游戏结束); ,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 游戏
7、进行中 - 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章 流程控
8、制和数组,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-运行流程图如下:,false,第3章 流程控制和数组,3.1 流程控制,3.1.1 条件语句, if语句, if else if else,【案例3-7】在一个游戏中,当玩家的经验达到某一数值的时候,才可以升级。,ublic c
9、lass DemoIf public static void main(String args) int exp=500;/声明值 if(exp400) System.out.println(升到4级); System.out.println(进入下一关); /如果上个条件不满足的情况下,判断else if之后的条件 else if(exp200) System.out.println(升到3级); else if(exp100) System.out.println(升到2级);,第3章 流程控制和数组,3.1 流程控制,3.1.1 条件语句, if语句, if else if else,/
10、 (接上一页) else/都不满足时,执行最后的else System.out.println(不升级); System.out.println(执行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 :
11、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
12、章 流程控制和数组,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后面的值与表达式的值
13、相同的第一个语句,否则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的执行。只要值与表达式匹配,程序
14、就从这个点开始一直执行下去。所以后面的语句全部会被执行 。 break语句不是必须的,但不写尽管语法没错,可能会出现某些逻辑的错误。,第3章 流程控制和数组,3.1 流程控制,3.1.2 循环语句,while语句通过判断循环条件的值来决定是否继续循环。如果值为true,则重复执行判断条件后的语句;执行完判断条件后的语句,会再次返回,对循环条件进行判断,直到变量或表达式为false时,就跳过while语句,开始执行while后语句。,while循环的语法是:,initialization /初始化条件 while (termination) /循环条件 body; /循环体 iteration;
15、 /迭代,变更循环条件 ,当表达式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 循环语句,上例执行流程图如
16、下:,第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执行流程图所示:,第3章 流程控制和数组,3.1 流程控制,3.1.2 循环语句,【案例3-12】用do循环来求0100的整数的和