黑马程序员技术交流社区

标题: 循环语句 [打印本页]

作者: 956251361    时间: 2015-12-25 10:37
标题: 循环语句
程序设计中,必不可少的就是循环。

一、为什么需要循环?
程序设计中,很常用的功能就是实现各种重复性工作。计算机最大的强项就是快速地完成重复性动作。
比如说,在屏幕上打印100行“Hello World”,如果在代码里写100行printf("Hello World\n")也是可以的,但相信没有人愿意这么干。于是,实现重复执行一段代码的方法诞生了。

二、for语句
简单的for循环程序如下:

for (表达式1; 表达式2; 表达式3)
{
    循环体
}

它主要分为5部分:

关键字for
这个关键字告诉计算机后面是一段for循环代码,它后面跟着一个小括号和一个大括号

循环体
循环体就是需要多次执行的n行代码

表达式1
这个表达式只被执行一次,是for语句中第一个执行的表达式。一般用于给循环控制变量赋初值

表达式2
每次执行循环体之前,会执行一次表达式2,执行结果为真时进入执行循环体,如果结果为假则跳出for循环

表达式3
每次执行循环体后,都会执行一次表达式3。一般用于循环控制变量的修改。

注意:表达式1和表达式3可以根据需要省略,但两个“;”不能省略。

for循环流程
如何打印100次"Hello World",代码如下:

int main()
{
    int i;

    for (i = 0; i < 100; i++)
    {
        printf("%d : ", i + 1);
        printf("Hello World!\n");
    }

    return 0;
}


1、i = 0 初始化之前定义的变量i;
2、进行条件判断i是否小于100,如果条件为真,则继续执行;
3、两个printf语句,第一个打印当前执行的次数i + 1,第二个打印"Hello World!"并换行;
4、执行i++使变量i自增一次;
5、回到第2步继续判断。
6、一直循环,直到第2步判断结果为假, 之后退出循环,结束。
这里需要注意的是i的值是从0到99,一共执行了100次。所以打印次数时应该是i + 1。当然也可以这样写:

for (i = 1; i <= 100; i++)
这样也是执行100次,i的值从1到100。

三、break语句
在执行过程中,如果因为一些特殊的要求,需要强行退出循环时,需要使用break语句。使用时,将break写在循环体的任何一个位置,一旦执行到这条语句,程序直接跳转到for语句大括号结束后执行后面的代码。

修改一下之前的需求,这次需要这样一个程序,从键盘输入数字,输入“1”打印一行“Hello World”,输入其他字符程序退出。

这个程序的设计需要注意下面几点:

循环体部分需要能够无限循环的执行,如果一直输入1就一直打印
循环体内有三个动作:从键盘读入一个数字、判断输入数字、执行打印功能
一旦出现需要退出的情况(输入了其他数字),需要使用break退出
代码如下:

int main()
{
    int i;
    int flag;

    for (i = 0; 1; i++)
    {
        scanf("%d", &flag);

        if (flag == 1)
        {
            printf("%d : ", i + 1);
            printf("Hello World!\n");
        }
        else
        {
            break;
        }
    }

    return 0;
}

当输入1时,打印一行Hello World!。最后输入了一个6,跳出循环,程序结束。

四、continue语句
continue的用法与break完全相同,只是作用稍微有些变化。执行到continue语句时,程序会放弃本次循环后面的语句,直接进入for语句的下一次循环。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2