文档章节

C Primer Plus 第6章 C控制语句:循环 6.10 嵌套循环

idreamo
 idreamo
发布于 2016/06/02 05:49
字数 608
阅读 48
收藏 0

程序清单6.17  rows1.c

/*roww1.c --使用嵌套循环*/
#include 
#define ROWS 6
#define CHARS 10
int main (void)
{
    int row;
    char ch;
    
    for(row=0;row<ROWS,row++)  /*第10行*/
    {
        for(ch='A';ch<('A'+CHARS);ch++)  /*第12行*/
            printf("%c",ch);
      printf("\n");
    }
    return 0;
}

/*运行这个程序会产生下列输出
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
*/

6.10.1 程序讨论

 开始于第10行的循环被称为外部循环,而开始于第12行的循环称为内部循环,因为它位于另一个循环的内部。外部循环开始时,ROW的值为0,当ROW的值达到6时结束。因此外部循环要执行6次,ROw的值从0变到5.每次循环的第一个语句都是内部的for循环。这个循环执行10次,在同一行上打印从A到J的字符。外部循环的第二个语句是printf("\n");。这个语句开始一个新行,这们内部循环下次运行的时候,输出就会在一个新的行上。

请注意在嵌套循环中,内部循环在外部循环的每次单独循环中都完全执行它的所有循环。

6.10.2 嵌套变化

在上一个例子中,内部循环在外部循环的每个周期中做着同样的事情。通过使内部循环的一部分依赖于外部循环,可以使内部循环在每个周期中的表现不同。

程序清单 6.18 rows2.c

//rows2.c--使内部循环依赖于外部循环的嵌套循环
#include <stdio.h>
int main (void)
{
    const int ROWS=6;
    const int CHARS=6;
    int row;
    char ch;
    
    for(row=0;row<ROWS;row++)
    {
        for(ch=('A'+row);ch<('A'+CHARS);ch++)
            printf("%c",ch);
        printf("\n");
    }
    return 0;
}
/*这次的输出如下:
ABCDEF
BCDEF
CDEF
DEF
EF
F
*/

因为在外部循环的每个周期中都要把row的值加到‘A’上,所以ch在每一行中都被初始化为字母表中后面的字符。但是判断条件并没有发生变化,所以每一行都依然是以F结尾。这导致在每一个新行都打印更少的字符 。

 

© 著作权归作者所有

idreamo
粉丝 18
博文 139
码字总数 224743
作品 0
青岛
产品经理
私信 提问
C Primer Plus 第6章 C控制语句:循环 6.4 不确定循环和计数循环

其他例子是计数循环,它们循环预先确定的次数。 程序清单6.10 sweetie1.c程序 在建立一个重复执行固定次数的循环时涉及到三个动作: 1、必须初始化一个计数器; 2、计数器与某个有限的值进行...

idreamo
2016/05/30
35
0
C Primer Plus 第7章 C控制语句:分支和跳转 7.6 continue和break

7.6.1 continue语句 该语句可以用于三种循环形式。 当运行到该语句时,它将导致剩余的迭代部分被忽略,并开始下一次的迭代。 如果continue语句处于嵌套结构中,它仅仅影响它的最里层的结构。...

idreamo
2016/06/19
49
0
C Primer Plus 第7章 C控制语句:分支和跳转 7.2 if语句中添加 else 关键字

if else 语句的通用形式为: if (expression) statement1 else statement2 如果expression为真(非零),就执行statement1;如果expression为假或零,则执行跟在else后的那一条语句(stateme...

idreamo
2016/06/16
45
0
C Primer Plus 第6章 C控制语句:循环 6.5 for循环

for 循环把所有这三种动作(初始化、测试、更新)都放在一起。通过使用for循环,您可以用程序清单6.11中的程序来代替前一个程序 。 程序清单6.11 sweetie2.c 在关键字for之后的圆括号中包含了...

idreamo
2016/05/31
23
0
C Primer Plus 第11章 11.7 ctype.h字符函数和字符串

第7章“C控制语句 分支和跳转”介绍了ctype.h系列字符相关的函数。这些函数不能被 应用于整个字符串,但是可以被应用于字符串中的个别字符。程序清单11.26定义了一个函数,它把toupper( )函数...

idreamo
2016/08/27
52
0

没有更多内容

加载失败,请刷新页面

加载更多

会用python把linux命令写一遍的人,进大厂有多容易?

看过这篇《2000字谏言,给那些想学Python的人,建议收藏后细看!》的读者应该都对一个命令有点印象吧?没错,就是 linux 中经常会用到的 ls 命令。 文章中我就提到如何提升自己的 python 能力...

上海小胖
28分钟前
6
0
HashMap的特性

一、hashmap数据结构:哈希表结构:数组+链表 hashmap调用默认构造方法会产生一个默认底层是长度为16的Entry数组,首先调用key的hasCode()方法来得到一个整数, int hash = hash(key.hashCode...

GGbird
29分钟前
16
0
第五章 spring-connet之Imports注解来龙去脉

前言 imports是一个在spring体系里非常重要的注解,基本每个Enable开头的注解必然有一个import注解。接下来我们深入研究下import的作用。看小节的同学建议先取看PostProcessorRegistrationDe...

鸟菜啊
32分钟前
6
0
CentOS部署Harbor镜像仓库

关于Harbor Harbor是用于存储和分发Docker镜像的镜像仓库服务,相比Docker Registry,Harbor在安全、标识、管理等方面做了增强,更适合企业使用; 官方网站:https://goharbor.io/ 官方开源:...

程序员欣宸
37分钟前
7
0
JavaScript调试必会的8个console方法

每个JavaScript开发者都用过console.log()来调试程序,但实际上Console对象还提供了很多其他方法可以提高调试效率。本文将介绍8个有趣的Console方法,即使JavaScript老手也不一定知道! 1、c...

汇智网教程
58分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部