Apex语言(五)循环结构
1、循环结构
循环语句允许我们多次执行一个语句或一组语句(重执行语句)。
2、while语句
只要给定条件为真,目标语句就会重复执行。
【格式】
while (循环条件){
语句;
}
【流程图】
【注意】while循环的关键点是循环可能永远不会运行。 当条件被测试并且结果为false时,循环体将被跳过,while循环之后的第一条语句将被执行。
【示例】
某同学围绕操场跑了200圈,请输出他的跑步记录。
【分析】
(1)输出跑步记录语句:System.debug('我在操场跑第'+N+'圈');将这条语句重复执行200遍。
(2)重复执行:需要一个计数器变量来记录执行的次数。计数器变量是用来控制循环次数的,也叫循环变量。
(3)计数器由变量的初值(比如从1开始计数),终值(计数到200,使循环条件为假),步长(增量或减量,每跑完一圈,计数器+1,循环变量更新)。
(4)从以上分析可以得出循环语句的三要素为:循环变量的初值、终值、步长。
(5)本题的循环变量times的初值为times=1,终值为times<=200,步长为1。
【示例】
求1-100之间能被5整除的数。
【分析】
(1)找出循环变量x的三要素:初值为x=5,终值为x<=100,步长为5。
(2)重复执行的语句:输出能被5整除的数。
【示例】
某公司的2010年年销售量为800万元,假如每年按25%的速度增长,到哪一年公司的年销售量能突破2000万。
【分析】
(1)找出循环变量saleNumbers的三要素:初值为saleNumbers=800万,终值为saleNumbers<2000万,步长为(1+0.25)。
(2)重复执行的语句:year=year+1,每年增长。
3、do...while语句
一个do ... while循环类似于一个while循环,do ... while循环在循环底部检查其条件。
【格式】
do{
语句;
}while (循环条件
【流程图】
【注意】do...while循环的关键点是循环至少执行一次。即使条件为false,它将至少执行一次代码块。
【示例】
求1-100之间能被5整除的数。
4、for语句
一个for循环类似于一个while循环。
【格式】
for(初始化;条件;计数){
语句;
}
【流程图】
【注意】for语句的关键点:
(1)先执行一次初始化语句(注意只执行一次)
(2)再判断条件是否成立
如果成立执行语句块,再执行执行计数语句。重新返回(2)判断条件是否成立,成立执行语句块,再执行计数语句,如此直到条件不成立则跳出循环。
如果条件不成立,则不执行语句块也不执行计数语句直接跳出循环。
【示例】
求1-100之间能被5整除的数。
5、多重循环
在一个循环里(外循环)嵌套了另一个循环(内循环),称为多重循环。
【示例】
打印10个*号后,再打印一个%号,直到打印5个%为止。如图:
**********%**********%**********%**********%**********%
【分析】
(1)先打印10个*号,即将System.debug('*')语句重复10遍。
(2)再打印1一个%号,System.debug('%')
(3)将(1),(2)重复5遍即可。
【示例】
计算下列公式的值。
【分析】
(1)外循环变量 i 的值从2-n,可以得出初值,终值和步长,将sum=sum+(1/ i 的 i 次方)重复执行n次。
(2)内循环计算出 i 的 i 次方,即将rule=rule*i 重复执行 i 次。
5、中断循环
当循环条件为false时,循环会正常终止,有时我们在会循环正常终止前强制退出循环,称为中断循环。
- 中断本次循环continue。
【示例】
输出1-20之间不能被3整除的数。
【补充】
(1)Math.mod是求余数,i 除以3的余数Math.mod(i,3)为0,i 能被3整除。
(2)=和==的区别:=是把右边表达式的计算结果保存到左边的变量里(赋值),==是判断左右两边的计算结果是否相等。
- 中断整个循环break。
【示例】
输出1-20之间不能被3整除的数,如果找到一个能被3整除的数就结束循环。
【示例】
猜数游戏:给定一个1-10之间的数,由计算机来猜这个是什么数,猜中后输出猜数的次数。
最新文章
- [LeetCode] Range Addition 范围相加
- 天气预报API(三):免费接口测试(“旧编码”)
- Probit回归模型
- 做完c语言作业的心得
- Extension Methods
- MYSQL常用命令集合
- 谷歌浏览器怎么调试js
- Sorting Algorithm
- node http.request请求
- java_获取多个文件夹下所有.java源码的总行数
- 一文搞懂 Linux network namespace
- RobotFrameWork环境搭建(基于HTTP协议的接口自动化)
- centos环境无法安装paramiko的问题解决
- VS VC 读取 INI文件
- sql注入(一)
- Bitmap byte[] InputStream Drawable 互转
- 常见的网络攻击(XSS,SQL注入,CSRF)
- 微信SDK 报错 invalid url domanin
- ubuntu-16.04.1-desktop-amd64.iso:ubuntu-16.04.1-desktop-amd64:安装Oracle11gR2
- python 软件管理规范
热门文章
- redis高可用,保证高并发
- 在Centos安装oracle_11gR2进度68%";Error in invoking target mkldflags ntcontab.o nnfgt.o of makefile..”
- Blue Jeans POJ 3080 寻找多个串的最长相同子串
- CCEditBox/CCEditBoxImplMac
- linux UID,GID,EUID,EGID,SUID,SGID
- Unity Update 具体解释
- 【树状数组】POJ 2155 Matrix
- oracle加入联合主键
- UVA10254 - The Priest Mathematician(找规律)
- Hilbert曲线简单介绍及生成算法