java用循环结构,JAVA: 循环结构

循环结构(for)

for语句

考虑如下循环问题的相同之处

请考虑如下三个题目的相似之处:

计算从1加到100的值;

计算1+1/3+1/5+…+1/999;

找出从第1号学员到第500号学员中成绩大于90的学员。

通过上面的问题可以看出,如上三个题目都是在有规律的重复执行某个操作,在程序中

考虑使用循环结构来解决。首先需要先找到前面介绍的循环变量,此循环变量在每一次的循环中有规律的发生变化,并且常常作为判断是否继续循环的条件。

首先,看第1个题目,设计循环变量i ,i的值为1,2,…,100,即:从1开始,每次增1。第二个题目,设计循环变量i , i的值为1,3,5,…,999,即:从1开始,每次增2。第三个题目,设计循环变量i , i的值为1,2,…,500,即:从1开始,每次增1。

通过上面的分析,可以看出,如上的循环都是固定次数的循环,这种情况,优先考虑使用for语句来实现。

for语句的执行逻辑

for语句是循环中最最常用的一种方式。for循环用于将某个语句或语句块重复执行预定次数的情形。语法如下:

for ( 表达式1;表达式2;表达式3 ) {

语句块(循环体)

}

可以看出,for循环的三个表达式之间通过分号;进行分隔,其执行逻辑如下所示:

计算表达式1的值,通常为循环变量赋初值;

计算表达式2(表达式2为逻辑表达式)的值,即判断循环条件是否为真,若值为真则执行循环体一次(语句块),否则跳出循环;

执行循环体;

计算表达式3的值,此处通常写更新循环变量的赋值表达式;

计算表达式2的值,若值为true则执行循环体,否则跳出循环;

如此循环往复,直到表达式2的值为false。

for语句的流程图

for语句流程图如图-1所示:

0818b9ca8b590ca3270a3433284dd417.png

图- 1

简单示例如下:

for ( int i = 1 ; i <= 10 ; i + + ) {

System.out.println( i );

}

如上程序的输出结果为:1 2 3 4 5 6 7 8 9 10

分析如上程序的执行过程:首先,初始化i的值为1,判断i是否小于等于10,结果为true,其次,输出i的值1,然后,执行i的自增1,再判断i是否小于等于10,结果为true,执行输出i的值2,以此类推……输出i的值10后,执行i的自增1,此为i为11,判断结果为false,程序终止。

for语句用于实现固定次数循环

for语句常常用于解决固定次数循环的处理,比如说累加和,想求1+2+3+…+100的结果,次数固定执行100次,可以考虑使用for循环处理,参见如下代码:

int sum = 0 ;

for ( int i = 1 ; i <= 100 ; i + + ) {

sum += i ;

}

System.out.println(“1到100的和为:” + sum ) ;

分析上面代码的执行过程,首先,声明一个变量用于保存累加和,此变量命名为sum,赋初始值为0,而后,for循环从1开始,每次增1,执行100次,循环体中将i的值累加到sum变量中。注意:每次都是在sum的基础之上加上i,所以使用了sum += i。循环结束后,输出结果“1到100的和为:5050“。

了解了如上题目之后,问:想求10的阶乘,即1*2*3*…*10,可不可以使用for循环来解决,如果可以的话要如何解决呢?当然可以,try!!!

for语句三个表达式特殊用法

首先回顾for语句的语法:

for ( 表达式1;表达式2;表达式3 ) {

语句块    }

通过上面的代码可以看出,for语句实现循环时需要3个表达式并且使用分号;分隔,

在实际使用时,for语句可以有几种特殊的使用方法:

特殊方式1:表达式1位置内容为空,看如下代码:

int sum = 0 ;

int i = 1;

for ( ; i <= 10 ; i + + ) {

sum += i ;

}

System.out.println(“1到10的和为:” + sum ) ;

通过上面的代码可以看出,虽然省略了表达式1,但只是将它放在了for循环的外面进行声明,只是位置不同而已。在此需要注意一点,即使for语句中不写表达式1了,表达式2前面的分号;也不能省略。

特殊方式2:表达式3位置内容为空时,看如下代码:

int sum = 0 ;

for ( int i = 1 ; i <= 10 ; ) {

sum += i ;

i + + ;

}

System.out.println(“1到10的和为:” + sum ) ;

通过上面的代码可以看出,虽然省略了表达式3,但也只是将它放在了for循环体之中,只是位置不同而已。在此需要注意一点,即使for语句中不写表达式3了,表达式2后面的分号;也不能省略。

特殊方式3:表达式1,2,3位置内容均为空时,看如下代码:

for ( ; ; ) {

System.out.println(“我要学习……”);

}

通过上面的代码可以看出,如上代码没有循环变量、没有条件控制,因此会造成死循环,而死循环在编写程序过程中是必须要避免的,可以在循环体中添加break跳出循环。

特殊方式4:表达式 1 和 3 位置内容的多样化

for语句中的三个表达式中表达式1和表达式3可以使用逗号表达式,逗号表达式就是通过”,”运算符隔开的多个表达式组成的表达式,从左向右进行计算。看如下示例:

for ( int i =1 , j = 6 ; i <= 6 ; i +=2 , j -=2 ) {

System.out.println(“ i , j = “ + i + “,” + j );

}

上面的代码的执行逻辑如下:初始设置i为1,j为6,判断i是否小于等于6,为真执行循环体,而后执行i+=2,j-=2,即:i增2,j减2。再判断i是否小于等于6,为真继续执行循环体,以此类推,直到条件为false。本程序的输出结果为:

i , j = 1 , 6

i , j = 3 , 4

i , j = 5 , 2

循环中使用break语句

循环中的break语句应用率很广,break可用于循环语句或switch语句中,其用于循环时,可使程序终止循环而执行循环后面的语句,常常与条件语句一起使用,看如下代码:

int sum = 0;

for(int i=1; i<=100; i++){

if(sum>=4000){

break;

}

sum += i;

}

System.out.println(sum);

上面的程序需要统计1到100的累加和,条件是当和大于等于4000时则终止计算,此案例通过在if语句中使用break实现了for语句的退出,本程序最终sum的值为:4005。

循环中使用continue语句

continue语句只能用于循环中,它的作用为跳过循环体中剩余语句而执行下一次循环,看如下代码:

int sum = 0;

for(int i=1; i<=100; i++){

if( i % 10 == 3 ){

continue;

}

sum += i;

}

System.out.println(sum);

上面的程序需要统计1到100的累加和,条件是跳过所有个位为3的,此案例通过在if语句中使用continue实现了跳过for语句中剩余的循环体语句,本程序最终sum的值为: 4570。

循环问题

循环问题

在实际应用中,当碰到需要多次重复的执行一个或多个任务的情况时,考虑使用循环来

解决,在前面所介绍的3种循环(while、do-while、for)中,一般情况下,for循环使用得最多,而对于for循环结构,一定要分析出需要解决业务的三个部分:

循环变量初始状态

循环条件

循环变量的改变

分析好了上面的三个部分,for语句的结构也就定义好了,其它的问题只在于填写不同

的循环体来解决不同的业务问题而已。

循环问题定义------“当”循环

如果业务可以转换为“当……“这样的句式时,优先选择while语句来实现。看下面的需求:假设年存款利率为3%,本金为10000,问存款总额超过12000时,收益具体是多少?

分析这个需求,可以转化为下面的理解:“当“存款总额小于12000时,以3%的利率增长,那么条件就是total<12000,这种”当“句式优先考虑使用while语句实现,简易代码如下:

……

while( 条件 ) {

total += ( total * 0.03 ) ;

}

……

循环问题定义------“直到”循环

如果业务可以转换为”直到……”这样的句式时,优先选择do-while语句来实现。看下面的需求:在验证身份时必须提供密码并核对,密码不正确则继续输入密码。分析这个需求,可以转化为下面的理解:获取密码,”直到”输入的值为123456,那么条件就是! ”123456”.equals(inputPwd),这种“直到……“句式优先考虑使用do-while语句实现,简易代码如下:

……

do {

……

} while(! ”123456”.equals(inputPwd));

……

循环问题定义------固定次数循环

如果业务中可以获取到一个确切的循环次数时可以考虑使用for循环来实现,看下面的需求:求1-100的和、累加10次输入的数字的和、录入3名学员信息、存储5门课程成绩……,上面的需求都是可以明确确切的循环次数,故而优先用for循环。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值