C语言详细讲解循环语句的妙用

目录
  • 一、循环语句分析
  • 二、do ... while 语句的循环方式
  • 三、while 语句的循环方式
  • 四、for 语句的循环方式
  • 五、break和 continue 的区别
  • 六、do 和 break 的妙用
  • 七、小结

一、循环语句分析

循环语句的基本工作方式

  • 通过条件表达式判定是否执行循环体
  • 条件表达式遵循 if 语句表达式的原则

do,while,for的区别

  • do 语句先执行后判断,循环体至少执行一次
  • while 语句先判断后执行,循环体可能不执行
  • for 语句先判断后执行,相比 while 更简洁

二、do ... while 语句的循环方式

三、while 语句的循环方式

四、for 语句的循环方式

下面看一段三种循环语句使用对比的代码:

#include <stdio.h>

int f1(int n)
{
    int ret = 0;

    if( n > 0 )
    {
        do
        {
            ret += n;
            n--;
        }
        while( n > 0 );
    }

    return ret;
}

int f2(int n)
{
    int ret = 0;

    while( n > 0 )
    {
        ret += n;
        n--;
    }

    return ret;
}

int f3(int n)
{
    int ret = 0;
    int i = 0;

    for(i=1; i<=n; i++)
    {
        ret += i;
    }

    return ret;
}

int main()
{
    printf("%d\n", f1(100));
    printf("%d\n", f2(100));
    printf("%d\n", f3(100));

    return 0;
}

下面为输出结果:

五、break和 continue 的区别

  • break 表示终止循环的执行
  • continue 表示终止本次循环,进入下次循环执行

下面看一段 continue 和 break 的区别代码:

#include <stdio.h>

void f1(int n)
{
    int i = 0;

    for(i=1; i<=n; i++)
    {
        if( (i % 2) == 0 )
        {
            break;
        }

        printf("%d ", i);
    }

    printf("\n");
}

void f2(int n)
{
    int i = 0;

    for(i=1; i<=n; i++)
    {
        if( (i % 2) == 0 )
        {
            continue;
        }

        printf("%d ", i);
    }

    printf("\n");
}

int main()
{
    f1(10);
    f2(10);

    return 0;
}

下面为输出结果:

六、do 和 break 的妙用

#include <stdio.h>
#include <malloc.h>

int func(int n)
{
    int i = 0;
    int ret = 0;
    int* p = (int*)malloc(sizeof(int) * n);

    do
    {
        if( NULL == p ) break;

        if( n < 5 ) break;

        if( n > 100) break;

        for(i=0; i<n; i++)
        {
            p[i] = i;
            printf("%d\n", p[i]);
        }

        ret = 1;
    }while( 0 );

    printf("free(p)\n");

    free(p);

    return ret;
}

int main()
{
    if( func(10) )
    {
        printf("OK\n");
    }
    else
    {
        printf("ERROR\n");
    }

    return 0;
}

下面为输出结果:

注意 do{ } while(0)是只执行一次循环体。

如果采用下面这种写法:

#include <stdio.h>
#include <malloc.h>

int func(int n)
{
    int i = 0;
    int ret = 0;
    int* p = (int*)malloc(sizeof(int) * n);

    if( NULL == p ) return ret;

    if( n < 5 ) return ret;

    if( n > 100) return ret;

    for(i=0; i<n; i++)
    {
        p[i] = i;
        printf("%d\n", p[i]);
    }

    ret = 1;

    printf("free(p)\n");

    free(p);

    return ret;
}

int main()
{
    if( func(4) )
    {
        printf("OK\n");
    }
    else
    {
        printf("ERROR\n");
    }

    return 0;
}

可以看到程序并没有输出 free(p),也就是说申请的内存并没有得到释放,造成内存泄漏。

所以说do 和 break 一起妙用,可以暴力跳出当前循环,避免内存泄漏。

七、小结

  • for 循环先进行判断再进入循环体
  • for 循环适合于循环次数固定的场合
  • while 循环先进行判断再进入循环体执行
  • while 循环适合于循环次数不定的场合
  • do ... while 循环先执行循环体再进行条件判断
  • do ... while 循环至少执行一次循环体

到此这篇关于C语言详细讲解循环语句的妙用的文章就介绍到这了,更多相关C语言循环语句内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 快速学习C语言中for循环语句的基本使用方法

    对于某个特定任务我们可以采用多种方法来编写程序.下面这段代码也可以实现前面的温度转换程序的功能:#include <stdio.h> /*打印华氏温度-摄氏温度对照表*/ main() { int fahr; for (fahr = 0; fahr <= 300; fahr = fahr + 20) printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32)); } 温度的下限.上限和步长都是常量, printf 函数的第三个参数必

  • 深入了解c语言的循环语句

    目录 C语言循环语句 while循环 for循环 do......while 循环的嵌套 总结: C语言循环语句 大多数人都希望自己是体格强健,天资聪慧,多才多艺的人.虽然有时事与愿违,但至少我们用c能写出这样的程序.诀窍是控制程序流.对于计算机科学(是研究计算机,不是用计算机作研究) 1 如果满足某些条件就重复执行语句(循环). 2 通过测试选择执行哪一个语句(分支). 在c语言当中有while,for,do......while循环. while循环 while循环语句 while(表达式)

  • C语言的分支和循环语句你了解吗

    目录 1.什么是语句? 2.分支语句(选择结构) 2.1.if语句 2.2.switch语句 2.2.1.switch语句中的break 2.2.2default子句 3.循环语句 3.1.while循环 3.1.1while中的break和continue 3.2.for循环 3.2.1.语法 3.2.2.break和continue在for循环中 3.2.3.for语句的循环控制变量 3.2.4.for循环的变种 3.3do…while()循环 3.3.1.语法 3.3.2.执行流程 3.3

  • C语言中循环语句练习实例

    计算n的阶乘 int main() { int i=0; int ret=1; scanf("%d",&i); for(i=1;i<=n;i++) { ret=ret*i; } printf("%d\n",ret); return 0; } 计算1!+2!+3!+.....+10! int main() {计算1!+2!+3!+.....+10! int i = 0; int j = 0; int sum = 0; int ret = 1; for (

  • C语言基础解析之分支与循环语句

    目录 - if语句:if(表达式) 悬空else问题 - switch语句 要注意的细节 switch中的的default子句: - while循环语法结构 - for循环语法结构 - do while循环 循环练习题 - 题目一(阶乘) - 题目二(阶乘和) - 题目三(二分查找) - 题目四(两边往中间渐变) - 题目五(密码登录) - 题目六(猜数字游戏) - goto语句 - getchar与putchar用法 - if语句:if(表达式) // 括号里面放一个表达式 ​//表达式的结果

  • C语言的分支和循环语句你真的了解吗

    目录 什么是语句? 分支语句 if语句 悬空else if书写形式的对比 练习 switch语句 default子句 循环语句 while循环 while语句中的break和continue 总结 什么是语句? C语句可分为以下五类: 表达式语句 函数调用语句 控制语句 复合语句 空语句 表达式语句 --> 表达式后面带个; 函数调用语句 --> 在写完的函数后面加个; 控制语句 控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言有九种控制语句. 可分

  • C语言之循环语句详细介绍

    目录 前言 while语句 do...while语句 for语句 结语 前言 C语言中的循环结构是程序中的一个基本结构. 循环结构可以使我们写很少的语句,让计算机反复执行某一过程. C语言提供了while语句,do......while语句和for语句,可以组成各种不同形式的循环结构. while语句 while语句又称当型循环控制语句 while(表达式) 语句 表达式式循环条件 ,语句是循环体 当表达式的值为真(非0)时,执行循环体语句,否则终止循环.其特点是先判断,再执行. 例如:计算1+

  • C语言中的三种循环语句

    目录 一.while循环 二.do while 循环 三.for 循环 一.while循环 while即:首先检查启动循环的条件是否满足,当条件满足时,不断地重复循环体内的语句,直到不满足条件就退出. while循环基本形式: while(条件) { <循环体>; <循环体>; } eg: 1 //输入任意个int型,整数并判断其位数#include int main() { int x; intn=0; scanf("%d",&x); n++; x /

  • C语言详细讲解循环语句的妙用

    目录 一.循环语句分析 二.do ... while 语句的循环方式 三.while 语句的循环方式 四.for 语句的循环方式 五.break和 continue 的区别 六.do 和 break 的妙用 七.小结 一.循环语句分析 循环语句的基本工作方式 通过条件表达式判定是否执行循环体 条件表达式遵循 if 语句表达式的原则 do,while,for的区别 do 语句先执行后判断,循环体至少执行一次 while 语句先判断后执行,循环体可能不执行 for 语句先判断后执行,相比 while

  • C语言详细讲解while语句的用法

    目录 while语句格式 例题1 例题2 例题3 while语句格式 格式: while(表达式){    语句块} 1.先执行while(表达式),如条件为真执行语句块: 2.执行完语句块,继续执行表达式: 3.知道表达式为假.就退出循环,执行while后面的代码. 例题1 用while语句,输出0-9的值. 代码: #include <stdio.h> int main (void) { int i=0; //初始条件i=0; while(i<10) //while 循环 //whi

  • C语言超细致讲解循环语句

    目录 C语言循环家族 while循环 for循环 dowhile循环 C语言循环家族 家族成员有while语句,for语句和do....while语句.这些成员都能实现循环,但又各有特点.今天就由我带领大家一起认识他们吧! while循环 while语句的基本格式: while(表达式) { 循环语句; } while语句执行的流程: while语句的理解: 1当表达式为假时(0为假),不执行while语句中的内容. 2当表达式为真的时候(非0),便循环执行while循环语句的内容,直到表达式为

  • C语言详细讲解if语句与switch语句的用法

    目录 一.if 语句 二.switch 语句 三.错误提示 一.if 语句 格式: if(写条件){输出内容}条件为真运行这个. else {输出内容}否则输出这个. 代码: #include <stdio.h> int main(void) { int score; //定义一个变量 score printf("请输入你的分数:"); scanf("%d",&score); //键盘输入你想要的分数 if (score>700) //给出

  • C语言超详细讲解循环与分支语句基础

    目录 写在开始 1. 分支语句 1.1 if语句 1.2 switch 2. 循环语句 2.1 while()语句 2.2 do while()语句 2.3 for 语句 for语句中表达式的省略 break在循环语句中的作用 continue 在循环语句中的应用 总结: 写在开始 在内容开始之前给大家介绍一下在计算机中如何表示真假 0表示假,非0表示真. 1. 分支语句 分支语句也叫做条件选择语句,主要分为if语句和switch语句. 1.1 if语句 if()…{} else if()…{}

  • Go语言基础for循环语句的用法及示例详解

    目录 概述 语法 注意 示例一  死循环,读取文件 示例二  打印乘法表 示例三  遍历字符串,数组,map 概述 for循环是一个循环控制结构,可以执行指定次数的循环 语法 第一种 for {} //无线循环 第二种 for 条件语句{} 第三种 for 初始语句; 条件语句; 迭代后语句 {} 第四种 for key,value:=range 表达式/变量{} 注意 省略初始条件,相当于while循环体必须用 { } 括起来初始化语句和后置语句是可选的如果只剩下条件表达式了,那么那两个分号也

  • C语言详细讲解注释符号的使用

    目录 一.注释规则 二.注释中一个有趣的问题 三.教科书型注释 四.迷惑型的注释 五.忽悠型注释 六.搞笑型注释 七.漂亮的程序注释 八.小结 一.注释规则 编译器在编译过程中使用空格替换整个注释 字符串字面量中的 // 和 /*...*/ 不代表注释符号 /*......*/ 型注释不能被嵌套 下面看一下这样一段代码: #include <stdio.h> int main() { int/*...*/i; char* s = "abcdefgh //hijklmn";

  • Go语言学习之循环语句使用详解

    目录 1.for循环 2.for-each语法 3.break的使用 4.continue的使用 5.goto的使用 1.for循环 写法基本和其他语言一致,只是没有了while循环,用for代替while. 样例代码如下 // for循环 func loop1() { sum := 0 for i := 0; i < 100; i++ { sum += i } fmt.Printf("sum = %d\n", sum) // 和while循环一样 sum1 := 3 for s

  • C语言详细讲解二分查找用法

    目录 [力扣题号]704.二分查找 力扣题目链接 示例 1: 输入: nums = [-1,0,3,5,9,12], target = 9     输出: 4       解释: 9 出现在 nums 中并且下标为 4 示例 2: 输入: nums = [-1,0,3,5,9,12], target = 2     输出: -1        解释: 2 不存在 nums 中因此返回 -1 提示: 你可以假设 nums中的所有元素是不重复的. n将在[1, 10000]之间. nums的每个元素

  • C语言详细讲解strcpy strcat strcmp函数的模拟实现

    目录 一.模拟实现strcpy函数 二.模拟实现strcat函数 三.模拟实现strcmp函数 四.小结 一.模拟实现strcpy函数 strcpy函数是字符串拷贝函数,就是将源字符串拷贝到目标空间中. char * strcpy ( char * destination, const char * source );//库函数中的声明 将源(source)指向的c字符串复制到目标(destination)指向的数组中,包括终止的空字符(并在该点停止). 为避免溢出,目标(destination

随机推荐