for循环中取出最大最小 累加_流程控制之循环语句【for循环语句】

4cb03479d6569f1ffcbd2e3be4e7fba3.png

for循环语句

for循环是Java程序设计中最有用的循环语句之一。一个for循环可以用来重复执行某条语句,直到某个条件得到满足。在Java5以后新增了foreach语法,对这两种for循环形式做详细的介绍。

1.for语句

语法如下:

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

{

语句序列

}

表达式1:该表达式用于初始化循环控制变量,它只在循环开始时执行一次。

表达式2:循环条件表达式,它的类型为boolean,如果表达式的值为true就执行一次循环体。

表达式3:该表达式用于改变循环体变量的值。

for循环语句的流程如图1所示。

1813d8581df9676596fef03dd264d3e8.png

图1 for循环流程图

For循环的执行过程如下:

第一步:执行表达式1,完成某一变量的初始化工作;例如inti=0;

第二步:判断表达式2的值;例如i<100。若表达式2的值为true,则执行一次循环体;然后执行第三部,否则退出循环体结束For循环。

第三部:执行表达式3,这部分通常执行循环控制变量的修改。

第四步:跳转到第二部继续执行循环

在项目中创建类Circulate,在主方法中使用for循环来计算100以内(包括100),所有偶数之和。

public classCirculate {

publicstatic voidmain(String args[]) {

intsum = 0; // 声明总和变量

for(int i = 0; i <= 100; i += 2) { //定义for循环

sum += i; // 累加100以内的偶数

}

System.out.println("100以内的所有偶数之和为:" + sum);

}

}

运行结果如图2所示。

65b50ee72d16d6fe6e6c73dd4aee6cd1.png

图2 运行结果

2.foreach语句

foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而任何的foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为foreach语句。foreach语句在遍历数组等方面为程序员提供了很大的方便。

语法如下:

for(元素变量x : 遍历对象obj){

引用了x的java语句;

}

foreach语句中的元素变量x,不必对其进行初始化,下面通过简单的例子来介绍foreach语句是怎样遍历一维数组的。

在项目中创建类Repetition,在主方法中定义一维数组,并foreach语句遍历该数组

8dc4405f3d8e1d8bf49c1710b683bdeb.png

运行结果如图3所示。

44ebd11731b769e119bbcb74213bc9e1.png

图3 运行结果

循环的跳转

continue跳转语句

continue语句只能应用在for、while和do...while循环语句中,用于结束本次循环直接跳过循环体剩余的语句,进行下一次循环。

语法:

continue 标号;

标号:这是可选参数,标号有合法标识符和“:”字符组成,例如“for1:”。

continue语句有两种使用情况:

不带标号跳转

如果执行不带标号的continue语句,将结束本次循环,跳过循环体中剩余的没有被执行的语句,根据循环的条件判断去执行下一次循环,或者结束循环。如果是for循环还要先执行表达式3,改变循环控制变量的值。

实现输出100以内能被7整除的所有数,使用continue语句过滤其它的数字。

public classContinueNull {

publicstatic voidmain(String[] args) {

System.out.println("100以内能被7整除的数有:");

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

if(i % 7 != 0) { // 当i的值不能被7整除时

continue; // 结束本次循环,放弃不能被7整除的书

}

System.out.print(i + "、"); // 输出i的值

}

}

}

实例中在For循环中加入了if判断语句,如果循环控制变量i不能被7整除,就执行continue语句放弃本次循环,否则输出变量i,这时变量i肯定能被7整除。

运行结果如图1所示。

6406aa244bcd98466d12445820c097c1.png

图1 实例运行结果

带标号跳转

这种情况下,continue语句不是跳过当前循环语句的一次循环,而是跳过标号指定的循环语句的一次循环,然后判断指定标号的循环条件,以决定是否执行标号指定的循环。

标号定义在语句之前,由一个合法的标识符和“:”字符组成。

语法:

标号:程序代码

continu语句跳转的标号用于指定循环语句,所以定义在循环语句之前。

说明:带标号的continue跳转语句经常用在多层循环中。

使用带标号的For循环和带标号的continue语句输出九九乘法表。

public class MultiplicationTable {

public staticvoid main(String[] args) {

outer:for (inti = 1; i <= 9; i++) { // 第一层循环

for (intj = 1; j <= 9; j++) { // 第二次循环

if (j > i) { //如果j>i

System.out.println(); // 换行

continue outer; // 跳过循环放弃不需要的乘数

}

Stringstr = j + "*" + i + "=" + j * i;

System.out.print(str + ""); // 使用制表符格式化输出

}

System.out.println();

}

}

}

实例中在内层For循环中加入了if判断语句,如果循环控制变量j大于外层循环控制变量i,那这个数字对于乘法表的当前行就没有用了,所以输出一个空行并执行continue语句跳出到outer标识的For循环,这时内层循环语句就被结束或者说终止了,转去执行outer标识的外层循环。

运行结果如图4.24所示。

6ad1f5c4651b8cf41a2fcd888437562f.png

图2 实例运行结果

如果把内层循环的if语句注释掉,如下所示:

//if (j > i) { // 如果j>i

// System.out.println(); // 换行

// continueouter; // 跳过循环放弃不需要的乘数

//}

然后再运行程序,将会输出如图3所示的结果

b642d8707772189bf3a02a554f7fea21.png

图3 实例注释if语句后的运行结果

break跳转语句

正常来说,退出循环的方式应该由循环条件来判断和控制,而break语句可以应用在for、while和do...while循环语句中,来实现强行退出循环。这也给循环增加了一些灵活性,也就是说,在循环条件为true的情况下,也可以根据需要使用break语句强行退出循环。

语法:

break 标号;

和continue语句一样,break语句也有两种使用情况:

不带标号的break语句可以终止break语句所在的循环。

使用while循环和break语句输出1至100所有整数的和。

public class GetSum {

publicstatic voidmain(String[] args) {

intsum = 0; // 声明总和变量

intcontrol = 1; // 声明控制变量

while(true) { // 无限的while循环

sum += control++; // 累加总和并步进控制变量

if(control > 100) { // 如果控制变量大于100

// 输出总和

System.out.println("1至100所有整数的和是:"+sum);

break; // 终止循环

}

}

}

}

实例中使用无限循环的while循环不停地累加整数的总和,并是control控制变量自增,当控制变量大于100的时候,说明100已经被累加到sum总和变量里了,这使循环的任务已经完成了,应该输出总和变量的数值,并执行break语句退出循环。

运行结果如图1所示。

ff0c1ce2248e496a0bc87def1503c228.png

图1 实例运行结果

带标号的break语句可以终止标号指定的循环,它常用于跳出多层循环的情况。

当九九乘法表的积大于16时,终止外层循环。

publicclass BreakTab {

publicstaticvoidmain(String[] args) {

loop: for (int i = 1; i <= 9; i++) {

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

if (i * j > 16) { // 如果乘积大于16

break loop; // 终止外层循环

}

System.out.print(i + "*" + j + "=" + i *j + "");

}

System.out.print(""); // 输出一个回车换行符

}

}

}

运行结果如图2所示。

6afc65db00a35e4221d697be9c6fdb0c.png

图2 实例运行结果

说明:break语句和continue语句的区别在于,break语句将终止整个循环语句,而continue语句只结束本次循环。

明天的话小编会带大家做一些练习题,代码的话还是会以图文方式发送,想要学习计算机编程的朋友可以关注小编哦!我带大家免费学习计算机编程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值