循环控制和循环嵌套

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

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正巧是每个乘法算式的被乘数和乘数。

JAVA的循环控制与循环嵌套的更多相关文章

  1. java - day003 - 循环嵌套, 循环命名, while, 数组

    1.循环嵌套 break 中断循环或switch(跳出循环).中断后继续往下执行 continue (跳到循环的下一轮继续执行) return (结束方法) 2.循环命名 内层循环控制外层循环.需要给 ...

  2. 047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用

    047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用 本文知识点:嵌套while循环应用 什么是循环嵌套? 什么是循环嵌套? ...

  3. 黑马程序员——JAVA基础之程序控制流结构之循环结构,循环嵌套

    ------- android培训.java培训.期待与您交流! ---------- 循环结构: 代表语句:while ,do while ,for while语句格式 : while(条件表达式) ...

  4. 【java】for循环嵌套

    循环嵌套:外循环控制行数,内循环控制每一行的列数,也就是每一行的元素个数 需求:打印出9*9的乘法表 class Demo { public static void main(String[] arg ...

  5. 【小白视频学Java for循环】3分钟学会Java的for循环,让看懂for循环嵌套再不是难事

    目录 一.单个for循环介绍 二.for循环嵌套 听讲时能听懂的for循环为什么一做题就晕菜?一个for循环还勉强能看懂,但为什么一看到双重for循环脑子里就感觉脑子全是浆糊? 如果有上述问题那么就继 ...

  6. java循环嵌套与跳转语句(break,continue)

    一 循环嵌套 嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构.while.do…while. for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套f ...

  7. java基础:进制详细介绍,进制快速转换,二维数组详解,循环嵌套应用,杨辉三角实现正倒直角正倒等腰三角,附练习案列

    1.Debug模式 1.1 什么是Debug模式 是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序. 1.2 Debug介绍与操作流程 如何加断点 选择 ...

  8. Java基础_循环嵌套_打印乘法口诀、菱形,各种图形,计算二元一次和三元一次方程组_7

    循环嵌套 打印乘法口诀 for(int j=1;j<=9;j++){ for(int i=1;i<=j;i++){ System.out.print(i+"*"+j+& ...

  9. 使用 JavaScript 用循环嵌套输出乘法表。外循环控制行数,内循环控制当前行要输出的乘法表达式,在页面上输出九九乘法表

    查看本章节 查看作业目录 需求说明: 在页面上输出九九乘法表,实现效果如图所示 实现思路: 创建HTML页面 在页面中嵌入 <script type="text/javascript& ...

随机推荐

  1. 说出JQuery中常见的几种函数以及他们的含义是什么?

    jQuery中常见的函数如下:  (1)get()取得所有匹配的DOM元素集合. (2)get(index)取得其中一个匹配的元素.index表示取得第几个匹配的元素. (3)append(conte ...

  2. 【BZOJ3140】消毒(二分图匹配)

    [BZOJ3140]消毒(二分图匹配) 题面 Description 最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为abc,a.b.c 均为正 ...

  3. Luogu4175:[CTSC2008]网络管理Network

    题面 Luogu4175:[CTSC2008]网络管理Network Sol 路径第\(k\)大 无解直接判断就好了 然后整体二分,加上树链剖分+树状数组统计 # include <bits/s ...

  4. NSURLRequest的缓存策略

    刚刚看到了一个小知识点,拿出来与大家分享一下,也是做个笔记. NSURLRequest有缓存策略,是这条属性: /*! @method cachePolicy @abstract Returns th ...

  5. tree、find、tail命令重要实战

    tree -L 1 -d ln -s ext msn  创建软连接 ls -lF| sed -n‘/^d/p’ ls -lF|awk ‘/^d’ ls -lrt  按时间倒着排 vi /etc/pro ...

  6. 移动端造json假数据时的坑(转义符问题)

    最近在 Json 数据的解析上碰到了一些坑,特此记录一下. 正文 迭代开发中,经常出现服务端接口还没开发完成的情况,所以经常需要移动端自己在本地造一些假数据. emmm,虽然说好像造假数据也不是什么很 ...

  7. ORACLE之莫名---ORA-02290: 违反检查约束条件

    最近碰到一个十分棘手的问题,Java程序插入空数据到oracle时报ORA-02290: 违反检查约束条件(XXXX.×××××),这明显是在设置不可为空的字段上插入为空内容导致,但是检查数据库表后发 ...

  8. Unity 网格合并

    从优化角度,Mesh需要合并. 从换装的角度(这里指的是换形状.换组成部件的换装,而不是挂点型的换装),都需要网格合并.材质合并.如果是人物的换装,那么需要合并SkinnedMeshRenderer, ...

  9. linux的shell学习笔记

    shell脚本第一行写明解释器的路径: #!/bin/bash运行脚本两种方式:使用bash命令运行shell文件,或授予脚本文件执行权限,可直接执行文件shell启动时,一开始执行一组命令来定义提问 ...

  10. php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别

    if(isset($_POST['submit'])) 它的意思是不是判断是否配置了$_POST['submit'] 这个变量呢?如果有这个变量 在执行其它代码 应该这样用if(isset($_POS ...