java 控制外层循环_JAVA的循环控制与循环嵌套

本文详细介绍了JAVA中的循环控制,包括break和continue语句的使用,以及循环嵌套的概念和实例。通过示例代码解析了如何在循环中根据条件跳出循环或跳过迭代,同时展示了如何使用循环嵌套解决输出二维矩阵和九九乘法表等问题。
摘要由CSDN通过智能技术生成

循环控制和循环嵌套

循环控制是除了循环条件之外,控制循环是否进行的一个机制,这给处理循环问题带来了灵活性。循环体内的语句块可以是顺序执行的语句,可以是分支结构的语句,也可以是循环语句,循环中含循环,就是循环嵌套。

1. 循环控制

循环控制由break语句和continue语句实现。

(1)break语句

break语句很利落简单,语句形式:

break;

break语句除了适用于switch外,也适用于for、while以及do-while三种循环语句,其作用是结束循环,程序流程至这些语句后的第一句。通常break语句配合条件语句一起使用。

例8:求1+2+3 +…+ N < 1000的N的最大数。

分析:这是一个自然数累加计算加判断的问题,加多少项是预先不知的,或者正是所求的,所以不管是用哪个循环语句来处理,条件的地方均无法明确给出。这就需要在循环体中边加边判断,如果结果有了,中途退出循环。

[TestBreak.java]

class TestBreak{

public static void main(String[] args){

int sum = 0, num = 1;

while( true ){

sum += num;

if( sum>1000 ) break;

num ++ ;

}

System.out.println("N: " + (num-1));

}

}

(2)Continue语句

continue语句形式:

continue;

continue语句,也称短路语句。它适用于for、while以及do-while语句中,其作用是忽略其后的语句,中止当前循环,流程转至循环起始处,开始下一次循环。

例9:阅读程序,分析程序运行结果。

[TestContinue.java]

class TestContinue{

public static void main(String[] args){

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

if( m%2 == 0 ) continue;

System.out.print(m + "\t");

}

}

}

2. 循环嵌套

在解决复杂一些的问题时,需要在循环里继续设置循环语句,这就是循环的嵌套。外层的循环称为外循环,内层的循环称为内循环。如输出二维矩阵的问题,用循环嵌套就很容易解决。

例10:阅读程序,分析程序运行流程。

[Matrix.java]

class Matrix {

public static void main( String[] args ){

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

for ( int j=1; j<=5; j++)

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

//内循环体

System.out.println();

//换行

}

}

}

程序分析:i是外循环变量,当i取得一个值,循环体(斜体部分的代码)执行一次。其中有两条语句,一条是for循环语句(内循环),另一条是换行语句。当循环体执行时,即内循环变量j从初值到终值遍历一次,进行输出。i增值换下一个时,先换行。

本程序的输出结果是:

1       2       3       4       5

2       4       6       8       10

3       6       9       12      15

例11:输出一个三角形形式的九九乘法表。

1×1=1

2×1=2   2×2=4

3×1=3   3×2=6   3×3=9

4×1=4   4×2=8   4×3=12  4×4=16

5×1=5   5×2=10  5×3=15  5×4=20  5×5=25

6×1=6   6×2=12  6×3=18  6×4=24  6×5=30  6×6=36

7×1=7   7×2=14  7×3=21  7×4=28  7×5=35  7×6=42  7×7=49

8×1=8   8×2=16  8×3=24  8×4=32  8×5=40  8×6=48  8×7=56  8×8=64

9×1=9   9×2=18  9×3=27  9×4=36  9×5=45  9×6=54  9×7=63  9×8=72  9×9=81

分析:这与前面矩阵输出的问题有些相像,同样也是输出多行的问题。乘法表有九行,可用循环变量i来记录行数(1~9行),第1行,有1个乘法算式;第2行,有2个乘法算式;第i行便有i个乘法算式。对于确定的第i行,如何来输出这i个算式呢?这又是一个重复处理的问题,可用内循环来解决。内循环变量设为j,j的变化从1到i。

[MutiTable.java]

class MutiTable{

public static void main( String[] args ){

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

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

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

System.out.println();

}

}

}

以上程序巧妙的是,循环变量i和j正巧是每个乘法算式的被乘数和乘数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值