流程控制方法
Posted javasan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流程控制方法相关的知识,希望对你有一定的参考价值。
一、流程控制分类
流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:分支结构、循环结构和顺序结构。
1、java分支结构分为两种:
①if条件分支,判断类型不是单一,只要一个分支被执行后,后边的分支不再执行,等值和区间都可以,if的使用范围大
②switch case,匹配固定值(整形/字符/布尔值/字符串(jdk1.7+)不到迫不得已不要用字符串匹配);判断条件类型单一;在分支执行完后(如果没有break跳出),不加判断地执行下去;default可以省略(default的位置可以任意,但不在最后时,break不可省略;强烈建议放到最后,放到最后的default可以省略break)
2、java中常见的循环有三种while / do while / for,循环的结构:声明变量用于控制循环次数、循环条件、循环体、迭代变化
①while先判断条件,后执行循环体,若第一次判断为false,循环体一次都不执行
②do while先执行循环体,后判断条件。最少执行1次。若while循环/do while第一次判断为true, 则两种循环没有区别
③for 表达式1迭代变量初始化,表达式2循环条件判断,若为false,循环结束,表达式3迭代变化,执行函数体{ }
3、顺序结构,顾名思义,按顺序执行
二、break和continue
1、break: 结束当前循环并退出当前循环体,break还可以退出switch语句
2、continue: 循环体中后续的语句不执行,但是循环没有结束,继续进行循环条件的判断(for循环还会i++)。continue只是结束本次循环。
三、双重循环
while、dowhile、for都可以相互嵌套,外层循环执行一次,内层循环执行n次,整个循环执行m*n次。
双层循环一般能解决具有明显的行列问题。内层循环控制列,外层循环控制行
四、方法
完成特定功能且可以被重复使用的代码块称为方法(Method)。修饰符、返回值类型(必选,若无返回值,须写void)、方法名、参数列表、方法体:完成具体功能。如果有返回值,必须有return语句;若无返回值,默认最后一条语句是return,可以省略。return用于结束方法,把控制权交给方法调用处。
在方法定义时的参数称为形式参数,简称形参。在方法调用时传入的参数称为实际参数,简称实参。实参 -> 形参的过程是值传递。
方法的递归,待解决问题的特点:①一个问题可分解为若干层简单子问题。②子问题和其上层问题的解决方案一致。③外层问题的解决依赖于子问题的解决
递归结构包括两个部分:①递归结束条件。解答:什么时候不调用自身方法。如果没有条件,将陷入死循环。
②递归体。解答:什么时候需要调用自身方法。
递归的优点:简单的程序
递归的缺点:递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多
递归的使用场合:任何可用递归解决的问题也能使用迭代解决;当递归方法可以更加自然地反映问题,并且易于理解和调试,并且不强调效率问题时,可以采用递归;在要求高性能的情况下尽量避免使用递归,递归既花时间又耗内存。
五、随机数
Math.random() 用于产生一个随机浮点数,其范围是[0,1),常用的[m,n] 公式: [m,n]=> (int)(Math.random()*(n-m+1) + m)
拓展:任意区间的随机整数 ①[m,n) => [m,n-1] ②(m,n) => [m+1,n-1] ③(m,n] => [m+1,n]
六、方法重载
一个类中方法名称相同,参数列表不同的方法构成方法重载。注意:方法重载和方法的返回值没有任何关系。
方法重载的判断依据:[1] 同一类中。[2] 方法名相同。[3] 参数列表不同(类型、个数、参数类型的顺序不同)。
以上是关于流程控制方法的主要内容,如果未能解决你的问题,请参考以下文章